一、安装vsftpd
1、安装vsftpd
yum install vsftpd -y
2、启动vsftpd:
systemctl start vsftpd
3、设置开机启动:
systemctl enable vsftpd
二、设置配置文件:vim /etc/vsftpd/vsftpd.conf 根据自己的需要更改
listen=NO // 如此条改为了,等于YES也行
#禁止匿名访问
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_list_enable=NO // 不允许用户离开自己的主目录
chroot_list_file=/etc/vsftpd.chroot_list // 虚拟用户列表,每行一个用户名
local_enable=YES // 允许本地用户访问
write_enable=YES // 允许本地用户写入
local_umask=022 // 上传后的文件的默认掩码
chroot_local_user=YES // 禁止本地用户离开自己的主目录
pam_service_name=vsftpd.vu // 权限验证需要的加密文件
guest_enable=YES // 开启虚拟用户功能
guest_username=ftp // 虚拟用户的宿主目录
virtual_use_local_privs=YES // 用户登录后操作目录和本地用户权限一样
user_config_dir=/etc/vsftpd/vconf // 虚拟用户主目录设置文件
allow_writeable_chroot=YES // 允许写入用户主目录,这条特别重要
三、添加用户
1、创建新用户目录:
mkdir -p /opt/zlin
2、 添加用户名,vim /etc/vsftpd.chroot_list,添加内容: zlin
3、修改目录权限Chmod –R 777/opt/zlin
4、添加用户及密码,vim /etc/vsftpd/vusers.list
zlin //用户名
123456 //密码
5、创建文件名文件,并指定用户目录
touch /etc/vsftpd/vconf/zlin
vim /etc/vsftpd/vconf/zlin
local_root=/opt/zlin
local_root针对的是系统用户访问的根目录,如果设置匿名用户的访问根目录可以设置:
anon_root=/opt/anno
6、重启服务即可:
systemctl restart vsftpd
备注
1)进入 /etc/passwd 更改用户的根目录路径
2)进入 /etc/vsftpd/vsftpd.conf 更改umask 可以更改用户创建文件夹的权限
这可能涉及通过代码使用FTP工具类代码上传远程FTP的时候需要创建文件时,文件夹的权限为755而无法正常写入文件导致上传异常,可以通过更改umask解决。
3)777 - umask 代表文件夹的权限。
4)例如 umask 为 002 则 文件夹权限为 775