操作系统: 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)时,虚拟用户使用与匿名用户相同的权限; ---------- 结束语 如果你为这就完了,那就图样图森破了, 虚拟用户可以玩的相当嗨了,可你有没有发现你的本地用户居然没法用了? 郁闷不? 当然了,还是有办法解决的, 欲知后事如何,且听下回分解...