折腾两天vsftpd,终于做好虚拟用户了
两天把vsftpd.conf看了n遍,重要配置都快背下来了,这vsftpd也真够麻烦的。下面是我的操作过程。
运行环境:vmware6.02,debian4.0 r3,vftpd 2.05。
1、修改vsftpd.conf,我的配置文件是这样的。
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd_user_conf
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd.vu
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
这样本地用户就可以登陆了。
2、增加一个系统账号,影射虚拟用户的账号。
mkdir /var/ftp
useradd -d /var/ftp virtual
chown virtual:virtual /var/ftp
这样就增加了一个virtual的账号,家目录是/var/ftp,并把这个目录的所有者改成virtual
3、制作虚拟用户数据库
apt-get install libdb3-util
touch login.txt
vim login.txt
注意,第一行用户名,第二行密码。格式向下面一样
xiaoqiang
123456
mingming
567890
haona
haona123
最后一行我没加回车,不知道加了会不会有影响。
(因为操作过程中出现ftp无法启动,读取配置错误等问题。怀疑是这或者是pam.d文件多了一个回车。反正该了这两个文件后好了,也可能是别的地方问题,我没发现)
db3-load -T -t hash -f login.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
4、建立验证用户的文件
touch /etc/pam.d/vsftpd.vu
vim /etc/pam.d/vsftpd.vu
这文件的内容是
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
5、现在虚拟用户都可以登陆了,但是没权限,虚拟用户权限配置文件夹在vsftpd.conf中定义的是/etc/vsftpd_user_conf
建立和目录文件
mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
touch xiaoqiang haona mingming
文件名对应用户名,将/etc/vsftpd.conf的内容复制到配置文件中,可以用vim多窗口操作,注意修改这几个地方,我的是拥有所有权限,可以根据实际需要更改。
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=YES
local_root=/var/ftp
6、重启vsftpd服务
/etc/init.d/vsftpd restart
OK,结束了。