1、搭建VSFTP服务器,实现系统账号可以被锁定,并且将tom用户加入到黑名单。
2、实现虚拟账号功能,要求虚拟账号t01可以在服务器上有上传文件和目录的权限,而t02只有下载权限,且下载速度为100K。要求虚拟用户t03的家目录和上面两个账号不在同一目录。
3、限制t03用户的下载速度为50K每秒,同时只能下载2个文件,测试效果。
rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
vi /etc/vsftpd/vsftpd.conf
#chroot_local_user=YES 去掉“#”,使其生效 //将用户禁锢在家目录
vi /etc/vsftpd/ftpusers
ctrl+g 和o 加tom 最后一行加tom禁用
[root@localhost vsftpd]# vi vuser.txt //创建三个虚拟用户t01、t01、t03
输入:
t01
123
t02
t03
[root@localhost vsftpd]# db_load -T -t hash -f vusers.txt vusers.db
[root@localhost vsftpd]# chmod 600 vusers.*
[root@localhost vsftpd]# ls -l
-rw------- 1 root root 12288 1月 6 18:48 vusers.db
-rw------- 1 root root 24 1月 6 18:31 vusers.txt
[root@localhost vsftpd]# useradd -d /srv/vuser -s /sbin/nologin vuser
[root@localhost vsftpd]# ls -l /srv
总用量 0
drwx------ 2 vuser vuser 62 1月 6 18:57 vuser //权限700改成500,不然
登入不了
[root@localhost vsftpd]# chmod 500 /srv/vuser/
dr-x------ 2 vuser vuser 62 1月 6 18:57 vuser
[root@localhost vsftpd]# vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
~
vi vsftpd.conf
#pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vdir //为虚拟账号建立单独的配置文件目录
[root@localhost vsftpd]# mkdir vdir //创建虚拟帐号配置文件目录
[root@localhost vsftpd]# cd vdir
[root@localhost vdir]# vi t01 //创建虚拟用户t01配置文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/opt/t01 //设置虚拟用户t01自己的家目录
[root@localhost ~]# ls -l /opt/
drwxr-xr-x 3 root root 29 1月 6 23:29 t01 //查看t01的权限,若属主为vuser,则目录不能带有w权限,W去掉;若属主为root,则权限可以不变
[root@localhost vdir]# cd /opt
[root@localhost opt]# mkdir /t01/t001
[root@localhost t01]# chown vuser t001
[root@localhost t01]# ls -l
drwxr-xr-x 2 vuser root 92 1月 7 00:17 t001
[root@localhost vdir]# vi t02
anon_upload_enable=NO //不允许有上传权限
anon_max_rate=100000 //设置最大传输速率为100KB
local_root=/opt/t02 //设置虚拟用户t02自己的家目录
保存退出
[root@localhost vdir]# mkdir /opt/t02 //创建t02的家目录
[root@localhost vdir]# ls -l /opt //查看t02的权限
[root@localhost opt]# mkdir t02/t002
[root@localhost opt]# ls -l t02 //查看t002权限,其它人默认没有写 入权限
[root@localhost t02]# ls -l
drwxr-xrwx 2 root root 171 1月 6 21:48 t002
[root@localhost t02]# chown vuser t002
[root@localhost opt]# cp /bin/a* /opt/t02/t002 //复制文件到t002目录下
[root@localhost opt]# ls t02/t002 //查看是否复制成功
[root@localhost opt]# systemctl restart vsftpd //重启vsftpd服务
加入以下一行:
local_root=/opt/t03 //指定虚拟用户t03自己的家目录
[root@localhost vdir]# mkdir /opt/t03
[root@localhost vdir]# ls -l /opt
//如果不单独指定这个目录,则虚拟用户的默认在/srv/vuser下,三个用户写的东西三个用户都能看到
而单独指定目录,则每个用户自己可以设置自己的权限
[root@localhost vdir]# vi t03
添加以下两行:vi
anon_max_rate=50000
max_per_ip=2
//验证,测试
[root@localhost opt]# mkdir t03/t003
[root@localhost opt]# cp /bin/b* /opt/t03/t003
[root@localhost opt]# ls t03/t003
[root@localhost opt]# systemctl restart vsftpd