前言:
公司最近多出来一台机器想拿来做开发服务器,安装Ubuntu,转 Apache + Tomcat。以前没有接触过Linux系统,正好用这次机会学习一下。
这篇博客就简单记录一下配置的过程,好日后重温。
开始写这篇博客的时候,系统已经安装完,也都配置完FTP、SVN和SSH了,所以很多过程都没来的级截图。
因为实在公司写的,所以有些内容不详细,日后会逐渐完善。
一, 系统安装
系统用的是 Ubuntu 14.04 LTS,因为担心在网上找不到足够的资料,同时也出于稳定性的考虑,没有选最新的16.X版本。
系统的安装网上资料很多,在这里就不赘述了。
二,配置FTP
FTP用的是vsftp。
1.安装vsftp
Ubuntu上安装程序的方法很简单,用root权限运行安装命令即可。ctrl + alt + t
运行Terminal, 输入一下命令。
sudo apt-get install vsftpd
用sudo
运行的命令会提示要你输入密码,按照提示输入root账户的密码。
2.配置vsftp
vsftpd.conf
vsftp的配置文件位于 /etc/vsftpd.conf
如果安装的Ubuntu是Desktop版本,可以直接用文本编辑器打开并编辑
如果是Server版本,或者想直接在Terminal进行,则:
sudo nano /etc/vsftpd.conf
设置相关项目如下:
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能访问限制的目录
chroot_local_user=YES
#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp
pam.d/vsftpd
同时还有一个文件就要修改:/etc/pam.d/vsftpd
sudo nano /etc/pam.d/vsftpd
在这一行的开始加一个‘#’注释掉
#auth required pam_shells.so
这样能避免用创建的用户直接登录ftp报530 login incorrect
的问题
3.添加FTP用户
没有组的话要先创建组
sudo groupadd -g 1101 groupftp
1101是组ID,1000以上比较安全,不能与其他组重复。
添加用户的命令是:
sudo useradd -d /home/ftp -g groupftp ftpuser
sudo passwd ftpuser
创建用户使用的是useradd
命令,参数中-d
是用户登录后进入的路径,-g
是用户组,最后输入的是创建的用户的名字useradd
命令的参数还有很多,在这里只使用这些是为了对应后期配置多用户访问和限制访问路径而做的铺垫,详细内容我会在写完那篇文章后在这里贴上链接。
*注 插入链接
passwd
是创建或更改用户密码的命令,输入后会显示让你输入密码。按照提示输入即可。
关于用户访问文件夹限制
vsftpd.conf
文件中 chroot_local_user
、chroot_list_enable
、chroot_list_file
三个项目是用来控制用户访问权限的,转别人的一段话:
首先,chroot_list_enable好理解,就是:是否启用chroot_list_file配置的文件,如果为YES表示chroot_list_file配置的文件生效,否则不生效;第二,chroot_list_file也简单,配置了一个文件路径,默认是/etc/vsftpd.chroot_list,该文件中会填入一些账户名称。但是这些账户的意义不是固定的,是跟配置项chroot_local_user有关的。后一条中说明;
第三,chroot_local_user为YES表示所有用户都不能切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。chroot_local_user为NO表示所有用户都能切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。也可以理解为,chroot_list_file列出的“例外情况”的用户。
现在的需求是,希望创建的用户都只在设定的目录里活动,而不能进入其他目录,所以我们 chroot_local_user
设为YES
。
至于chroot_list_enable
和chroot_list_file
也都设定好,虽然现在还没有需要能全盘ftp的用户,但如果以后有这样的需求的话,只要在chroot_list_file
设置的文件里写入该用户名就可以了。要注意chroot_list_file
设定的文件里一行写一个用户名。
如此一来我们的配置如下:
chroot_local_user = YES
chroot_list_enable = YES
chroot_list_file = /etc/vsftpd.chroot_list #该文件可以任意位置,自己创建即可
调整文件夹权限
chroot_local_user = YES
的情况下用ftp连接会报“500 OOPS: vsftpd: refusing to run with writable root inside chroot()” 。 这是因为chroot的情况下,根目录是不允许被用户更改的,所以不能给根路径留w权限。
sudo chmod a-w /home/ftp
sudo mkdir /home/ftp/data
a代表所有人,-w表示去掉写的权限, 之后在路径下再创建一个文件夹,ftp连进来就可以在data文件夹下写入文件了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。