Linux CentOS6.2 x64配置vsftpd虚拟用户服务器
最近由于项目需要,配置了一个简单的vsftpd服务器,结合网上的资料,整理了配置步骤,供以后参考: www.zhishiwu.com
一 、安装vsftpd需要的组件
[root@localhost ~]# yum -y install pam*
[root@localhost ~]# yum -y install db4*
[root@localhost ~]# yum -y install vsftpd*
二 、建立虚拟用户
[root@localhost ~]#vi /etc/vsftpd/vftpusers.txt
添加虚拟用户名和密码,奇数行为用户名,偶数行为密码
ftpusers
123456
Ftpusers1
123456
www.zhishiwu.com
三 、生成虚拟用户口令认证文件
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vftpusers.txt /etc/vsftpd/vftpusers.db
四 、编辑vsftpd的PAM认证
[root@localhost ~]# vi /etc/pam.d/vsftpd
将原有内容全部注释,并在最后添加如下两行(32位系统下需将lib64改为lib):
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpusers
五、建立本地映射用户并设置宿主权限
[root@localhost ~]# useradd -d /app/syncdata -s /sbin/nologin vftpusers
[root@localhost ~]#chmod 776 /app/syncdata
六、配置 vsftpd.conf (设置虚拟用户配置项)
可上传、下载、不能删除和创建目录
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_umask=002
anon_upload_enable=YES
anon_other_write_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO #pasv模式,port模式则设为YES
listen_port=2121
pasv_min_port=65000
pasv_max_port=65100
chown_uploads=NO
xferlog_std_format=YES
nopriv_user=vftpusers
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
ls_recurse_enable=NO
listen=YES
guest_enable=YES
guest_username=vftpusers
#virtual_use_local_privs=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
hide_file=.*
七、关闭selinux
[root@localhost ~]# vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
重启服务器
八、测试登录
[root@localhost ~]# service vsftpd restart
重启vsftpd服务 然后测试登录。
九、建立各个虚拟用户自身的配置文件
[root@localhost ~]#mkdir /etc/vsftpd/vftpusers_conf
编辑ftpusers文件
[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftpusers
添加
anon_other_write_enable=YES #开放ftpusers的删除权限。
其它虚拟用户的配置文件,依次建立同名配置文件并写入需要的配置即可
vsftpd的配置文件要增加虚拟用户配置文件的选项
[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf
增加如下行:
user_config_dir=/etc/vsftpd/vsftpd_user_conf #设定用户配置文件存放目录
www.zhishiwu.com
十、虚拟用户高级设置
1、virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传 下载 删除 重命名)
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限