REHL4.0下的vsftpd虚拟用户账号的配置
1、建立虚拟用户口令库文件;
# cat yy.txt
ky
123
xx
123
注意:奇数行为用户,偶数行为密码;
2、生成vsftpd的认证文件;
# db_load -T -t hash -f yy.txt /etc/vsftpd/user.db   //生成vsftpd的认证文件
# file /etc/vsftpd/user.db
/etc/vsftpd/yy.db: Berkeley DB (Hash, version 8, native byte-order)
# chmod 600 /etc/vsftpd/user.db   //设置yy.db文件权限只对root用户可读写;
# ll /etc/vsftpd/user.db                  
-rw------- 1 root root 12288 Jul 1 19:57 /etc/vsftpd/yy.db
3、建立虚拟用户所需的PAM配置文件;内容如下:
# cat /etc/pam.d/user.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib/security/pam_userdb.so db=/etc/vsftpd/user
4、建立虚拟用户及要访问的目录并设置相应的权限
# useradd -d /home/ftp ftptest    //建立用户名为ftptest,对应的宿主目录为ftp
# chmod 700 /home/ftp         //设置权限是700
5、修改vsftpd.conf配置文件,添加虚拟用户的配置项,内容如下:
guest_enable=YES
guest_username=ftptest
pam_service_name=user.vu
6、重新启动vsftpd服务
#service vsftp restart
7、测试vsftpd中的虚拟用户账号
#touch /home/ftp/a.txt
#chown ftptest.ftptest /home/ftp/a.txt   //建立一个文件供下载测试用
C:\Documents and Settings\admin>ftp 192.168.2.101
Connected to 192.168.2.101.
220 (vsFTPd 2.0.1)
User (192.168.2.101:(none)): ky     //输虚拟FTP用户名
331 Please specify the password.
Password:                            //输FTP的密码
230 Login successful.              //成功
ftp> get a.txt                   //下载a.txt文件
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for a.txt (0 bytes).
226 File send OK.                //成功下载
ftp>
8、为不同的虚拟用户给权限
1)修改vsftpd.conf配置文件,在里面添加以下内容:
user_config_dir=/etc/vsftpd_user_conf    //设置在/etc/vsftpd_user_conf这个目录下保存虚拟
用户的配置文件,
2)建立用户配置文件目录
# mkdir /etc/vsftpd_user_conf
3)为虚拟用户建立单独的配置文件
# cat /etc/vsftpd_user_conf/ky      //虚拟用户ky的配置文件
anon_world_readable_only=NO        //具有浏览和下载的权限
# cat /etc/vsftpd_user_conf/xx    //虚拟用户xx的配置文件
anon_world_readable_only=NO       //具有浏览和下载的权限
anon_upload_enable=YES             //具有上传的权限
anon_mkdir_write_enable=YES        //有建立和删除目录权限
anon_other_write_enable=YES       //有文件改名和删除文件权限
注意:在/etc/vsftpd_user_conf/目录中的虚拟用户的配置文件名称要和虚拟用户名相同。
下面的是我的vsftpd.conf的所有设置:
# cat /etc/vsftpd_user_conf/xx
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost ~]#
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
guest_enable=YES
guest_username=ftptest
pam_service_name=login.vu
userlist_enable=YES
listen=YES
tcp_wrappers=YES
chroot_local_user=YES
user_config_dir=/etc/vsftpd_user_conf
可以通过修改虚拟用户的配置文件来实现不同的权限分配
anon_world_readable_only=NO       //具有浏览和下载的权限
anon_upload_enable=YES             //具有上传的权限
anon_mkdir_write_enable=YES        //有建立和删除目录权限
anon_other_write_enable=YES       //有文件改名和删除文件权限