centos ftp服务器怎么设置用户权限,要求 : 1.admin 所有权限 2.userA...
发布网友
发布时间:2022-04-27 11:38
我来回答
共1个回答
热心网友
时间:2022-04-09 09:43
首先你要弄清楚vsftpd的验证方式有三种
匿名访问:任何人无需验证口令即可登入FTP服务端。
本地用户:使用FTP服务器中的用户、密码信息。
虚拟用户:创建独立的FTP帐号资料。
一般像你这种对权限控制比较严格的话,要用虚拟用户模式,下面是方法
第1步:建立虚拟FTP用户数据库文件。
切换至vsftpd程序目录:cd /etc/vsftpd/
创建用于生成FTP用户数据库的原始帐号和密码文件:vim vuser.list
//单数行为帐号,双数行为密码。
userA
passwdA
userB
passwdB
admin
passwdadmin
使用db_load命令用HASH算法生成FTP用户数据库文件vuser.db:
db_load -T -t hash -f vuser.list vuser.db
FTP用户数据库内容很敏感,所以权限给小一些:chmod 600 vuser.db
删除原始的帐号和密码文件:rm -f vuser.list
第2步:创建FTP根目录及虚拟用户映射的系统用户。
创建用户virtual并设置为不允许登陆系统并定义该用户的家目录:
useradd -d /var/ftproot -s /sbin/nologin virtual
为保证其他用户可以访问,给予rwxr-xr-x权限:chmod -Rf 755 /var/ftproot/
第3步:建立支持虚拟用户的PAM认证文件:
vim /etc/pam.d/vsftpd.vu
//参数db用于指向刚刚生成的vuser.db文件,但不要写后缀。
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
第4步:在vsftpd.conf文件中添加支持配置。
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 禁止匿名开放模式。
local_enable=YES 允许本地用户模式。
guest_enable=YES 开启虚拟用户模式。
guest_username=virtual 指定虚拟用户帐号。
pam_service_name=vsftpd.vu 指定pam文件。
allow_writeable_chroot=YES 允许禁锢的FTP根目录可写而不拒绝用户登入请求。
第5步:为虚拟用户设置不同的权限
现在不论是userA还是userB帐户,他们的权限都是相同的——默认不能上传、创建、修改文件
指定用户独立的权限配置文件存放的目录:
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
创建用户独立的权限配置文件存放的目录:
mkdir /etc/vsftpd/vusers_dir/
切换进入到该目录中:cd /etc/vsftpd/vusers_dir/
创建userA的配置文件:
vim userA
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_download_enable=NO
创建userB的配置文件:
vim userB
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_download_enable=YES
创建admin的配置文件
vim admin
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_download_enable=YES
第6步:重启vsftpd服务,验证实验效果。
systemctl restart vsftpd
如果出现操作被拒绝,考虑selinux的因素