本文适合RHEL4系统,其他系统没有经过验证
1、建立login.txt文件,存放可以ftp的虚拟用户及密码,文件内容如下
upload
123456
download
123456
admin
123456
文件奇数行用户名,偶数行为密码
2、使用以下命令生成虚拟用户数据库
db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
3、拷贝生成pam验证文件
cp /usr/share/doc/vsftpd-2.0.1/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp.vu
[root@rhel4 VIRTUAL_USERS]# mkdir /var/ftpsite
[root@rhel4 VIRTUAL_USERS]# useradd -d /var/ftpsite virtual;
[root@rhel4 VIRTUAL_USERS]# chmod 700 /var/ftpsite
[root@rhel4 VIRTUAL_USERS]# chown virtual /var/ftpsite
[root@rhel4 VIRTUAL_USERS]# su - virtual -c "echo hello >/var/ftpsite/test.file"
vi /etc/vsftpd.conf在此文件中插入下面的配置语句
guest_enable=YES #(启用虚拟用户)
guest_username=virtual #(将虚拟用户映射为本地virtual用户)
pam_service_name=ftp.vu #(指定PAM配置文件为ftp.vu)
user_config_dir=/etc/vsftpd_user_conf #(指定不同虚拟用户配置文件的存放路径)
[root@rhel4 VIRTUAL_USERS]# mkdir /etc/vsftpd_user_conf
#h. 开放不同用户的不同权限
echo "anon_world_readable_only=NO"> /etc/vsftpd_user_conf/download #(开放download用户的下载权限——只能下载;注意这个不地方不要写成YES,否则将不能列出文件和目录)
cp /etc/vsftpd_user_conf/download /etc/vsftpd_user_conf/upload
vi /etc/vsftpd_user_conf/upload #添加下列行
write_enable=YES #(增加写权限)
anon_upload_enable=YES #(增加上传权限)
anon_mkdir_write_enable=YES #(增加创建目录的权限)
cp /etc/vsftpd_user_conf/upload /etc/vsftpd_user_conf/admin
增加一行:
anon_other_write_enable=YES #(增加管理员用户的删除/重命名的权限)
i.测试
service vsftpd restart
以用户名download和你设置的密码登录,ls,可以看到文件,下载,成功!put一个文件,提示
Permission denied。rename test.file同样权限被拒绝;delete test.file同样不成功!
输入quit退出,以upload用户登录,OK!可以上传,下载,mkdir lsf,提示“/lsf" created;rename lsf lsf1提示Permission denied,删除文件同样不成功!
输入quit退出,以admin用户登录,可以有上述所有权限,然后rmdir lsf,提示Remove directory o [eration successful;delete test.file提示Delete operation successful!OK,设置成功