vsftpd虚拟用户
操作系统: Debian7.0
软件版本: vsftpd-2.3.2
功能描述: 建立不具有系统用户权限的FTP用户
1.创建虚拟用户密码文件。
建立文本文件,单数行为用户名,偶数行为密码,
格式如下:
#vi account.txt
dachun
123456
user
password
guest
guestpw
2.生成密码库文件,并修改其权限:
#db_load -T -t hash -f ./account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
注意事项:
db_load命令需要安装db-util包;
rhel5中其包名为db4-util,默认未安装,
debian7中其包名为db4.8,然后通过软链接至db_load;
3.创建pam认证文件
在/etc/pam.d/目录下新建文件vsftpd.vu,内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account
注意事项:
密码库的路径要与实际的路径相符。
在debian7系统中,security的路径位于/lib/i386-linux-gnu目录下
需要建立软链接
#cd /lib
#ln -s i386-linux-gnu/security/ ./
4.使能虚拟用户
修改vsftpd.conf文件
# 使能虚拟用户
guest_enable=YES
# 将虚拟用户映射为本地用户ftpuser
guest_username=ftpuser
# 修改认证模块
pam_service_name=vsftpd.vu
5. 重启vsftpd服务。
至此,虚拟用户可正常访问FTP,其权限相当于配置文件中映射的本地用户;
对各个用户的权限进行单独设置
1.在/etc/vsftpd.conf文件中添加如下内容:
#指定用户配置文件目录
user_config_dir=/etc/vsftpd/user_conf
2.用户配置文件目录下创建相应的用户配置文件(用户名),
#vi /etc/vsftpd/user_conf/dachun
# 指定用户目录
local_root=/var/www/dachun
#以下可添加其他权限配置
3.至此虚拟用户的家目录被限制在了 /var/www/dachun
4.如果虚拟用户不能上传文件则需要使能
# 允许上传文件
anon_upload_enable=YES
# 允许创建目录
anon_mkdir_write_enable=YES
# 允许其他(删除,改权限等)操作
anon_other_write_enable=YES
# 修改权限掩码
anon_umask=022
如果不使能匿名用户的这几个权限,在部分版本中,虚拟用户也无法上传文档;
原因是VSFTPD-1.2.0新添了virtual_use_local_privs参数,
当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限,
当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限;
结束语
如果你为这就完了,那就图样图森破了,
虚拟用户可以玩的相当嗨了,可你有没有发现你的本地用户居然没法用了?
郁闷不?
当然了,还是有办法解决的,
欲知后事如何,且听下回分解...