本文主要介绍在64位操作系统下配置vsftp的虚拟用户。
1.添加虚拟用户vuser
#useradd vuser -s /sbin/nologin
新建一个存储虚拟用户用户名密码的数据库,路径可自设,这里用/etc/vsftpd/vuser
#cd /etc/vsftpd/
#vim vuser(在里面写入你需要的用户名和密码,一行用户名一行密码,格式如下)
用户名
密码
用户名
密码
....
安装db4_utils
#yum -y install db4*
把新建的文本文件vuser转换为db文件
#cd /etc/vsftpd
#db_load -T -t hash -f vuser vuser.db
2.配置vsftpd.conf文件
加入如下几行:
guest_enable=yes
guest_username=vuser
pam_service_name=vvsftpd(新的pam认证文件,原来的是vsftpd)
local_enable=yes(默认已存在)
user_config_dir=/etc/vsftpd/userconfig (目录下存放相关的用户的配置文件,文件名对应vuser里的用户名)
3.添加vvsftpd文件
进入目录/etc/pam.d,新建空文件vvsftpd,内容为:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
注意:32位的系统中pam_userdb.so的目录应为/lib/security/pam_userdb.so
4.配置范例
#cd /etc/vsftpd/userconfig,这里只需要在该目录中新建两个配置文件"vftp1","vftp2":
账号vftp1用作上传专用账号,权限为只能上传不能下载不能删除不能新建文件夹,根目录为/var/ftp/share.由于虚拟用户使用的是匿名用户的权限选项,所以虚拟用户配置起来是非常灵活的.这里还要注意一下选项"anon_world_readable_Only=no”这个选项的大致意思是开放匿名用户(虚拟用户)的浏览权限,如果不写这个的话会报一个错误.
vftp1的配置如下:
local_root=/var/ftp/share (限制根目录)
download_enable=no
anon_upload_enable=yes
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_Only=no
帐户"vftp2"用作下载账号,只能下载不能上传不能删除不能新建文件夹,根目录为/var/ftp/share
local_root=/var/ftp/share
download_enable=yes
anon_upload_enable=no
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_Only=no
注:每行后面不能有空格,否则报错
参数说明:
anon_world_readable_Only=NO 表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES 表示用户可以上传文件
anon_mkdir_write_enable=YES 表示用户具有建立和删除目录的权限
anon_other_write_enable=YES 表示用户具有文件改名和删除文件的权限
下面来建立文件夹/var/ftp/share,这个文件夹的所有者应该为"vuser",因为虚拟用户vftp1,vftp2映射的本地用户是vuser,如果vuser对该文件夹没有权限,那么不论配置文件里的权限开多大也无济于事。
#chown -R vuser:vuser /var/ftp/share
这样就OK了!
5.上传文件的权限
修改vsftpd.conf文件,加入anon_umask=022