OS : CentOS Linux release 7.2.1511 (Core)
要求:
路径 | 权限 | 备注 |
---|---|---|
/home/ftp | 公司所有人员包括来宾均可以访问 | 只读 |
/tmp | 仅允许web, zrd三个人访问 | web只允许下载,zrd可以上传 均使用虚拟账户 |
1、安装:
yum install -y -q vsftpd
2、创建用户
a、系统映射用户
useradd -d /home/ftp -s /sbin/nologin vftpuser
所有虚拟用户有增改权限最终都会映射成vftpuser属主组, 所以vftpuser必须要有目录的权限虚拟用户才能跳转到这个目录进行操作(增删改)
b、虚拟用户
奇数为用户名,偶数行为密码cat >/tmp/ftpuser.txt<<EOF
web
123456
admin
123456
zrd
123456
EOF
c、虚拟用户文件转换成加密文件
db_load -T -t hash -f /tmp/ftpuser.txt /etc/vsftpd/vftpuser.db
3、修改/etc/vsftpd/vsftpd.conf配置
// # 在最后添加# 匿名用户根目录位置
anon_root=/home/ftp
virtual_use_local_privs=YES
guest_enable=YES
# 映射到系统的用户
guest_username=vftpuser
chroot_local_user=YES
allow_writeable_chroot=YES
# 虚拟用户配置目录
user_config_dir=/etc/vsftpd/user_conf
4、虚拟用户权限配置
虚拟用户对应的系统用户要有这个目录的权限否则无法操作mkdir /etc/vsftpd/user_conf/
a、有读写删权限的用户
cat >/etc/vsftpd/user_conf/zrd<<EOF |
b、只有读下载权限的用户
cat >/etc/vsftpd/user_conf/web<<EOF |
5、配置pam文件
vim /etc/pam.d/vsftpd#%PAM-1.0
session optional pam_keyinit.so force revoke
# 注释掉以下4行
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
session required pam_loginuid.so
session include password-auth
# /etc/vsftpd/vftpuser为生成 /etc/vsftpd/vftpuser.db文件.db不要填写否则报错
# 添加下面两行
auth required pam_userdb.so db=/etc/vsftpd/vftpuser
account required pam_userdb.so db=/etc/vsftpd/vftpuser