为VSFTPD配置虚拟用户(文本方式)

创建虚拟与用户数据库

1. 创建loguser.txt,格式如下:

userid
pass

比如我创建两个用户:tony 密码为tonypass,etony密码为etonypass 则loguser.txt的内容如下:

tony
tonypass
etony
etonypass

2. 安装数据库生成工具:

# aptitude install libdb3-util

3. 生成数据库:

# db_load -T -t hash -f loguser.txt /etc/vsftpd_login.db

4. 设置数据库文件的访问权限:

# chmod 600 /etc/vsftpd_login.db

配置PAM文件

修改/etc/pam.d/vsftpd 内容如下:

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

为虚拟用户创建本地系统用户

useradd -d /home/ftpsite virtual
mkdir /home/ftpsite
chown virtual.virtual /home/ftpsite
ls -ld /home/ftpsite
drwxr-sr-x 2 virtual virtual 48 2006-08-18 05:48 /home/ftpsite

在目录下创建一些内容

echo “etony’s vsftpd server” > /home/ftpsite/msg
chown virtual.virtual /home/ftpsite/msg

创建/etc/vsftpd.conf

根据需要创建/etc/vsftpd.conf,但要确保含有一下设置:

anonymous_enable=NO
local_enable=YES
write_enable=NO #不清楚为什么这样设置
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=21
pasv_min_port=30000
pasv_max_port=30999

5.启动vsftpd

/etc/init.d/vsftpd start|restart

6.测试

$ lftp localhost -u tony,tonypass
lftp tony@localhost:~> ls
-rw-r–r– 1 1001 1001 22 Aug 17 21:49 msg
lftp tony@localhost:/> exit
$ lftp localhost -u tony,tonyp
lftp tony@localhost:~> ls
ls: Login failed: 530 Login incorrect.

Leave a Reply