准备给项目组弄个ftp服务器,首选vsftpd,通过填了n个坑,终于装成功了。
首先更新ubuntu软件,如果最近已经更新过,可直接忽略。软件老旧可能导致无法正常安装vsftpd
sudo apt-get update
下载安装vsftpd,
sudo apt-get install vsftpd
安装成功后 vsftpd 自动运行,我的vsftpd版本是3.0.2-1ubuntu2。
默认配置无法满足我们的要求,需要修改一下配置文件。配置文件路径 /etc/vsftpd.conf
有几个地方需要说明一下,
1. local_enable=YES 允许本地用户登录
2. write_enable=YES 本地用户拥有文件创建和删除权限
3. local_umask=022 新增文件的权限码,文件为755(777-022), 文件夹为644(666-022)
4. chroot_local_user=YES 所有用户都限制在用户所属的home路径下,不允许访问其他目录
其他参数可问度娘,有很多文件都做了说明。
修改/etc/pam.d/vsftpd文件内容
到这里,配置完成,重启vsft服务。
sudo service vsftpd restart
接下来创建用于连接ftp的用户
sudo useradd -d /srv/ftp -s /usr/sbin/nologin test
为testt账户输入密码
sudo passwd test
需要注意的是vsftpd规定ftp的根目录不能包含写权限,所以
sudo chmod go-w /srv/ftp
由于ftp账户登录后默认在根目录,所以需要创建一个二级目录,用于上传和下载数据
sudo mkdir /srv/ftp/data
sudo chmod +w /srv/ftp/data
现在 test用户就可以正常登陆ftp服务器了,在data目录上传和下载数据。
后面将介绍ftp服务器的用户管理和目录权限管理。