以下内容都在selinux为disabled情况下进行
#<ftp虚拟用户的设定>
创建虚拟帐号身份)
vim /etc/vsftpd/loginusers ##文件名称任意
ftpuser1
123
ftpuser2
123
ftpuser3
123
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db
vim /etc/pam.d/ckvsftpd ##文件名称任意
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd
guest_enable=YES
虚拟帐号身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser
虚拟帐号家目录独立设定)
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER
mkdir /ftpuserhome
chgrp ftpuser /ftpuserhome
chmod g+s /ftpuserhome
mkdir /ftpuserhome/ftpuser{1..3}
虚拟帐号配置独立)
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1
在此文件中设定配置文件中的所有参数,此文件的优先级高
FTP虚拟用户的设定
[root@localhost vsftpd]# vim /etc/vsftpd/loginusers
[root@localhost vsftpd]# cat /etc/vsftpd/loginusers
user1
123
user2
123
user3
123
[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db 必须在/etc/vsftpd下做这条命令
[root@localhost vsftpd]# vim /etc/pam.d/ckvsftpd
[root@localhost vsftpd]# cat /etc/pam.d/ckvsftpd
account required pam_userdb.so db=/etc/vsftpd/loginusers
auth required pam_userdb.so db=/etc/vsftpd/loginusers
虚拟账号身份指定
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
130 pam_service_name=ckvsftpd
131 guest_enable=YES
[root@localhost ftpdir]# systemctl restart vsftpd.service
在另一边 lftp 172.25.254.220 -u user1 (这个时候student就进不去了)
[kiosk@foundation20 Desktop]$ lftp 172.25.254.220 -u student
Password:
lftp student@172.25.254.220:~> ls
ls: Login failed: 530 Login incorrect.
如果出现500 则说明权限过大 得chmod u-w /home/*
[kiosk@foundation20 Desktop]$ lftp 172.25.254.220 -u user1
Password:
lftp user1@172.25.254.220:~> ls
drwxrwxr-x 3 0 50 91 Apr 23 04:52 pub
lftp user1@172.25.254.220:/> exit
虚拟帐号家目录设定
[root@localhost ~]# mkdir /ftpdir/user{1..3} -p
[root@localhost ftpdir]# mkdir /ftpdir/user{1..3}/upload
[root@localhost ftpdir]# touch /ftpdir/user1/userfile1
[root@localhost ftpdir]# touch /ftpdir/user2/userfile2
[root@localhost ftpdir]# touch /ftpdir/user3/userfile3
[root@localhost ftpdir]# echo $USER
root
[root@localhost ftpdir]# su - student
mkdir: cannot create directory '/home/student/.cache': Permission denied
[student@localhost ~]$ echo $USER $USER变量名 可以显示当前用户名称
student
[student@localhost ~]$ exit
logout
[root@localhost ftpdir]# vim /etc/vsftpd/vsftpd.conf
133 local_root=/ftpdir/$USER
134 user_sub_token=$USER
[root@localhost ftpdir]# systemctl restart vsftpd.service
另一边测试
[kiosk@foundation20 Desktop]$ lftp 172.25.254.220 -u user1
Password:
lftp user1@172.25.254.220:~> ls
drwxr-xr-x 2 0 0 6 Apr 23 07:32 upload
-rw-r--r-- 1 0 0 0 Apr 23 07:32 userfile1
lftp user1@172.25.254.220:/> exit
[kiosk@foundation20 Desktop]$ lftp 172.25.254.220 -u user2
Password:
lftp user2@172.25.254.220:~> ls
drwxr-xr-x 2 0 0 6 Apr 23 07:32 upload
-rw-r--r-- 1 0 0 0 Apr 23 07:33 userfile2
虚拟用户配置独立
[root@localhost ftpdir]# groupadd westos
[root@localhost ftpdir]# chgrp westos /ftpdir/user{1..3}/upload/
[root@localhost ftpdir]# chmod 775 /ftpdir/user{1..3}/upload/
[root@localhost ftpdir]# vim /etc/vsftpd/vsftpd.conf
135 user_config_dir=/etc/vsftpd/userconfig
[root@localhost ftpdir]# systemctl restart vsftpd.service
[root@localhost ftpdir]# vim /etc/vsftpd/userconfig/user2 ##在此文件中设定配置文件中的所有参数,此文件的优先级高
1 anon_mkdir_write_enable=YES
2 anon_other_write_enable=YES
3 anon_world_readable_only=NO
4 ......
[root@localhost ftpdir]#systemctl restart vsftpd.service
在另一边测试