yum -y install vsftpd
chkconfig vsftpd on
grep -v ^# vsftpd.conf|grep -v ^$
anonymous_enable=NO
local_enable=YES
local_root=/data/ftp
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/userconfig
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
其中有几个比较重要的配置 userlist
userlist_enable=YES#启动用户列表
userlist_deny=NO #决定是否对用户列表的用户拒绝访问ftp (user_list是白名单,ftpusers是黑名单)
userlist_file=/etc/vsftpd/user_list
锁定根目录配置
local_root= /var/www #本地用户登录后自动转到的ftp根目录
chroot_local_user=YES #将所有用户限定在指定的主目录内
chroot_list_enable=NO #不启用列外的用户列表 (不再引用下面的配置,就是所有用户)
chroot_list_file=/etc/vsftpd/chroot_list #指定列外的用户列表文件
具体参数说明,参考如下
https://blog.51cto.com/13833047/2158299
l每个用户只能访问某个具体目录,不是看到local_root配置的所有目录:
user_config_dir=/etc/vsftpd/userconfig
需要新建userconfig,里面写上以用户命名的文件,例如test1 和 test2,文件中的内容local_root=/data/ftp/test1/
可以指定不同的目录,作为其跟目录。
建立用户:useradd -d /data/ftp -s /sbin/nologin test1
更改用户:usermod -d /data/ftp test2
更改目录权限,来让用户对目录具有写权限
chown test1:test1 /data/ftp/test1
重启systemctl restart vsftpd 就可以登陆ftp了
注意:在windows 上从ftp下载文件的时候报错,(当前的安全设置不允许从该位置下载文件)
参考下面方法解决:
https://blog.csdn.net/hello_world_qwp/article/details/78716344
我搭建的ftp搭建参考链接:https://blog.csdn.net/putao2062/article/details/79668880
明日继续补充权限问题