默认的vftp文件根目录为/var/ftp,该目录默认为root:root 0755权限,为了使其它用户能上传文件,给ftp根目录其它用户写权限
chmod 1757 /var/ftp
setsebool -P ftpd_full_access on
配置文件如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
local_root=/var/ftp
chroot_local_user=YES
allow_writeable_chroot=YES
1,创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。
比如:
在/etc/vsftpd目录下创建一个虚拟用户文件vusers
aaa
123.com
bbb
123.com
该文件包含两个账户aaa,bbb,且密码均为123.com
2,使用db_load命令将vusers文件转为数据库文件db_load -T -t hash -f vusers vusers.db
降低数据库文件权限chmod 600 vusers.db
3,建立用于支持虚拟用户的PAM文件。
vi /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
4,在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu
即,将vsftpd.conf文件中pam_service_name=vsftpd修改为:pam_service_name=vsftpd.vu
并且添加如下
guest_enable=YES
guest_username=ftp
5,为虚拟用户设置不同的权限。
比如:允许aaa上传、创建、修改、查看、删除文件,只允bbb查看文件
mkdir /etc/vsftpd/vsusers_dir
cd /etc/vsftpd/vsusers_dir
touch aaa bbb
编辑aaa
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
修改vsftpd.conf,添加一行user_config_dir=/etc/vsftpd/vusers_dir
完整的配置文件如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
#local_root=/var/ftp
chroot_local_user=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vusers_dir
最后重启vsftpd使配置生效.
常用参数说明:
download_enable=[YES|NO]是否允许下载文件
userlist_enable=[YES|NO]设置用户列表为“允许”还是“禁止”操作
userlist_deny=[YES|NO]max_clients=0最大客户端连接数,0 为不限制
max_per_ip=0同一IP地址的最大连接数,0 为不限制
anonymous_enable=[YES|NO]是否允许匿名用户访问
anon_upload_enable=[YES|NO]是否允许匿名用户上传文件
anon_umask=022匿名用户上传文件的umask值
anon_root=/var/ftp匿名用户的FTP根目录
anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录是否开放匿名用户的其他写入权限(包括重命名、删anon_other_write_enable=[YES|NO]除等操作权限)
anon_other_write_enable=[YES|NO] 是否允许匿名用户修改目录名称或删除目录
anon_max_rate=0匿名用户的最大传输速率(字节/秒),0 为不限制
local_enable=[YES|NO]是否允许本地用户登录FTP
local_umask=022本地用户上传文件的umask值
local_root=/var/ftp本地用户的FTP根目录
chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,以确保安全local_max_rate=0本地用户最大传输速率(字节/秒),0 为不限制
guest_enable=YES开启虚拟用户模式
guest_username=virtual指定虚拟用户账户
pam_service_name=vsftpd.vu指定PAM文件
allow_writeable_chroot=YES允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
原文:https://blog.51cto.com/3823536/2553095