vsftp

Vsftp虚拟用户配置
取自 MonitorWiKi
跳转到: 导航, 搜索
                                                                         VSFTPD虚拟用户配置


目前机器上安装的vsftpd一般是rpm而不是源码编译,建议使用命令:yum install vsftpd 。配置虚拟用户有2种方法,一种是用mysql,另一种是用Berkeley DB的db_load工具实现,现在用db_load实现虚拟用户的。具备这2个主要的程序后就可以开始配置了

1.  生成虚拟用户口令库文件:

为了建立此口令库文件,先要生成一个文本文件logins.txt该文件的格式如下,单数行为用户名,偶数行为口令:

Kwol
Kwol
Admin
admin

2.  生成口令库文件,并修改其权限:

     yum install db4-utils*
     setsebool -P ftpd_disable_trans 1
 

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

    #chmod 600 /etc/vsftpd/account.db

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

     #vi /etc/pam.d/ftp

    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/account

    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/account

  注意:如果是32位的系统把lib64改为lib,即

   auth required /lib/security/pam_userdb.so db=/etc/vsftpd/account

   account required /lib/security/pam_userdb.so db=/etc/vsftpd/account

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

     #useradd    kwolftp 

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 kwolftp.
chroot_local_user=NO
listen=YES
tcp_wrappers=YES
guest_enable=YES 激活虚拟用户
guest_username=kwolftp 虚拟用户在linux里的用户名
pam_service_name=ftp 判断虚拟用户的数据文件
use_localtime=YES 时间设置成与系统时间一致上面代码中

另外,user_config_dir=/etc/vsftpd  这个选项表示当虚拟用户登录成功后(也许是在登陆时)就会读取这个目录下的与虚拟用户名一直的配置文件,注意user_config_dir的值是目录的名称,而且此目录下要有和虚拟用户名称一样的配置文件,在第6小结中,以虚拟用户kwolftp的配置文件做例子;guest_enable=YES表示启用虚拟用户;guest_username=kwolftp则是将虚拟用户映射为本地用户;pam_service_name=ftp指定PAM的配置文件为ftp。

6.  配置虚拟用户的权限

新建/etc/vsftpd/kwolftp文件,加入以下内容:

local_root=/data/ftpdir  设置虚拟用户登录后的主目录,对改目录要给予相应的用户权限,如chown kwolftp /data/ftpdir
anon_world_readable_only=no 匿名是否允许下载可阅读的文件
write_enable=yes 允许上传
anon_upload_enable=yes 匿名用户允许上传
anon_other_write_enable=yes 匿名用户其它的写权利

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

7. 开放防火墙

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 920  -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9981:10281  -j ACCEPT

8.重新启动VSFTP:

service vsftpd restart
然后就可以使用虚拟用户登录。
补充
配置文件的其他参数可以到一下的网站查看
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

cd /etc/vsftp/
vim winenice
local_root=/data/update/
anon_world_readable_only=yes
write_enable=yes

anon_upload_enable=yes
virtual_use_local_privs=yes


#anon_mkdir_write_enable=YES
#anon_world_readable_only=YES

service vsftpd restart
最新版本启动方式为 /usr/sbin/vsftpd


 

你可能感兴趣的:(搜索,用户,导航)