您的位置:首页 > 编程语言 > PHP开发

vsftpd服务的配置(虚拟用户)

2017-04-26 14:37 323 查看
以下内容都在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

在另一边测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vsftpd