目前Linux大部分部署的FTP服务器都是vsftpd,至于为什么,暂时没什么必要深究。
这里有一篇文章是详细介绍了vsftp:
https://blog.51cto.com/meiling/2071122
1.安装vsftpd
# yum check-update
# yum -y install vsftpd
2.配置参数
# vi /etc/vsftpd/vsftpd.conf1
修改为如下参数
vim /etc/vsftpd/vsftpd.conf
编辑配置文件如下:
vsftpd控制用户禁止访问上级目录 只能访问自己目录
如何只让用户访问自己的家目录,其他目录意外的全部不能访问:
vim /etc/vsftpd/vsftpd.conf
如果设置为
chroot_local_user=YES
chroot_list_enable=YES (这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd/chroot_list
那么, 凡是加在文件chroot_list中的用户都是不受限制的用户,即, 可以浏览其主目录的上级目录。
也就是说chroot_list这个文件为空。则所有用户通过FTP登录只可以访问家目录的文件或文件夹。
如果想让ftp用户访问其他目录,则在chroot_list 中添加要访问目录的用户名即可。 一行一个用户名
以上方法必须注意.
chroot_list 这个文件保存着登录FTP的用户,只有这里有的名称才有可能会登录。
chroot_list 位于 /etc/vsftpd/ 这个目录下,倘若没有此文件,手动创建一个即可。
这是一个配置的案例:所有用户只可以访问家目录。
请查看chroot_list 这个文件是否存在,如果不存在,请 创建,否则ftp登录得时候,会提示 500 错误
这个文件找不到。
touch chroot_list 创建文件
至于这里写什么用户,请按照上述的说明进行填写。
一行一个用户。
3.重启ftp
# systemctl restart vsftpd.service
# systemctl enable vsftpd.service
4.修改防火墙配置
# firewall-cmd --permanent --add-service=ftp
# firewall-cmd --reload
# setsebool -P ftp_home_dir on
5.为ftp创建一个用户test1(指定目录为/home/www,不允许远程登录shell)
# useradd -d /home/www -m test1 -s /sbin/nologin
# cd /home/www
# chmod -R 777 *
6.为ftp用户设置一个密码
# passwd test