您的位置:首页 > 编程语言 > PHP开发

VSFTPD虚拟用户配置

2008-03-20 13:44 323 查看
一. 虚拟用户配置
目前机器上安装的vsftpd是rpm而不是gz结尾的软件包,版本是2.0.1,配置虚拟用户有2种方法,一种是用mysql,另一种是用 Berkeley DB 的db_load工具实现,我就是用db_load实现虚拟用户的。具备这2个主要的程序后就可以开始配置了
1. 生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件 logins.txt 该文件的格式如下,单数行为用户名,偶数行为口令:
K wol
K wol
A dmin
admin
2.生成口令库文件,并修改其权限:

#db_load -T -t hash -f ./ logins .txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db

3.新建一个虚拟用户的PAM文件。加上如下两行内容:

#vi /etc/pam.d/vsftp.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib/security/pam_userdb.so db=/etc/vsftpd/account

4.建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:

#useradd -d /home/ftpsite suny
#chmod 700 /home/ftpsite

经过该步骤的设置,/home/ftpsite就是 suny 用户的主目录,该用户也是ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。

5.编辑/etc/vsftpd/vsftpd.conf文件,使其整个文件内容如下所示( 这是我服务器上的配置文件 ):

user_config_dir=/etc/vsftpd 虚拟用户的配置文件
local_enable=YES
write_enable=NO
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
pasv_enable=YES
ftpd_banner=Welcome to blah FTP service suny.
chroot_local_user=NO
listen=YES
tcp_wrappers=YES
guest_enable=YES 激活虚拟用户
guest_username=suny 虚拟用户在linux里的用户名
pam_service_name=vsftp.vu 判断虚拟用户的数据文件
use_localtime=YES 时间设置成与系统时间一致

上面代码中,guest_enable=YES表示启用虚拟用户;guest_username= suny 则是将虚拟用户映射为本地用户,这样虚拟用户登录后才能进入本地用户 suny 的目录/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件为vsftp.vu。

6.重新启动VSFTP:
#service vsftpd restart
然后就可以使用虚拟用户登录。

二. 配置虚拟用户的权限
user_config_dir=/etc/vsftpd ,这段配置文件就是告诉vsftpd,当虚拟用户登录成功后(也许是在登陆时)就会读取这个目录下的与虚拟用户名一直的配置文件,注意 user_config_dir 的值是目录的名称,而且此目录下一定要有和虚拟用户名称一样的配置文件,我以虚拟用户admin的配置文件做例子:
local_root=/data/userspace 设置虚拟用户登录后的主目录
anon_world_readable_only=no 匿名是否允许下载可阅读的文件

write_enable=yes 允许上传

anon_upload_enable=yes 匿名用户 允许上传

anon_other_write_enable=yes 匿名用户其它的写权利

此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限

三. 补充
配置文件的其他参数可以到一下的网站查看
http://www.chuhu.com/thread-83-1-1.html
http://vsftpd.beasts.org/

当出现 500 OOPS: cannot change directory:/home/xxxx 的情况,可以常试一下命令
setsebool ftpd_disable_trans 1
service vsftpd restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: