前言:
FTP有三种登录方式:匿名登录、本地系统用户登录和虚拟用户登录。
虚拟用户是ftp服务器的专用用户,它的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,并且配置更加灵活。
1
2
3
4
5
|
yum
install
-y vsftpd
vi
/etc/vsftpd/vsftpd
.conf
#开启用户登录认证
anonymous_enable=NO
local_root=
/data
chroot_local_user=YES
|
1.生成虚拟用户口令库文件(为了建立此口令库文件,先要生成一个文本文件。)
1
2
3
4
5
|
vi
/etc/vsftp/user_list
.txt
user1
pass
user2
pass
|
2.生成用户数据库
1
2
|
db_load -T -t
hash
-f
/etc/vsftpd/user_list
.txt
/etc/vsftpd/user_list
.db
chmod
600
/etc/vsftpd/user_list
.db
|
3.创建虚拟用户PAM文件
1
2
3
|
vi
/etc/pam
.d
/vsftpd
.vu
auth required
/lib64/security/pam_userdb
.so db=
/etc/vsftpd/user_list
account required
/lib64/security/pam_userdb
.so db=
/etc/vsftpd/user_list
|
4.建立本地用户来映射虚拟用户
1
2
|
useradd
-s
/sbin/nologin
vftp
chmod
700
/home/vftp
|
5.启动虚拟用户并映射到本地用户
1
2
3
4
|
vi
/etc/vsftpd/vsftpd
.conf
guest_enable=YES
guest_username=vftp
pam_service_name=vftpd.vu
|
6.默认虚拟用户都在vsftp家目录,需要设置指定的目录,添加虚拟用户配置文件位置
添加用户配置目录:
1
2
3
|
vi
/etc/vsftpd/vsftpd
.conf
user_config_dir=
/etc/vsftpd/vsftpd_user_conf
mkdir
/etc/vsftpd/vsftpd_user_conf
|
添加用户配置文件:
1
2
3
4
5
6
7
|
vi
/etc/vsftpd/vsftpd_user_conf/user1
local_root=
/ftp/share
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
#开放用户浏览、下载权限
anon_other_write_enable=YES
#重命名权限、续传,不建议开
|
设置权限:
1
2
|
chown
vftp:root -R
/ftp/share
service vsftpd restart
|
本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1294765,如需转载请自行联系原作者