Linux搭建FTP之vsftpd 虚拟用户配置步骤
环境:Ubuntu 10.04
一.安装vsftp
sudo apt-get install vsftpd
二.添加虚拟用户
1.创建虚拟用户数据库
创建虚拟用户文本文件/tmp/account.txt
user1
password1
....
2.安装db4.6_util
sudo apt-get install db4.6_util
3.生成数据库
sudo mkdir /etc/vsftpd
sudo db4.6_load -T -t hash -f /tmp/account.txt /etc/vsftpd/account.db
4.设置数据库权限
sudo chmod 600 /etc/vsftpd/account.db
三.配置pam文件
1.新建vsftpd.vu
sudo gedit /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
我们在上一步建立的数据库在此处得到应用。
我们建立的虚拟用户将采用PAM进行认证,这是通过/etc/vsftpd.conf文件种的语句pam_service_name=vsftpd.vu来启用的。
2.为虚拟用户创建本地系统用户
新建一个系统用户virtual_user,
sudo useradd -d /home/ftp virtual_user
sudo chmod 700 /home/ftp
3.配置/etc/vsftpd.conf
建议先进行备份
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_backup
根据需要一版要确保含有以下设置:
sudo gedit /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES #这个我没在配置文件中找到,可以自己加上
guest_username=virtual_user #如上
user_config_dir=/etc/vsftpd_user_conf #如上
pam_service_name=vsftpd.vu
local_enable=YES
4.vsftpd_user_conf
sudo mkdir /etc/vsftpd_user_conf
cd/etc/vsftpd_user_conf
行的值都不要有空格,否则登录时会出现错误,举个例子,假如我在write_enable=YES后多了个空格,那我登录时就出现如下错误:
500 OOPS: bad bool value in config file for: write_enable
sudo touch user1 user2 user3 ....
5.根据各用户所需权限的不同分别进行设置
local_root=/var/ftpsite #须建立相应的文件夹mkdir /var/ftpsite
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
6.完成 重启vsftpd
/etc/init.d/vsftpd restart