原文地址:http://www.linuxidc.com/Linux/2016-05/131224.htm
需求
用户linuxidc的家目录为/var/ftp/vuserdir/linuxidc,他只有下载权限,没有其他权限(创建目录、重命名、删除、上传等);
用户muu的家目录为/var/ftp/vuserdir/muu,他有所有权限。
配置
# 创建本地用户(用于映射虚拟用户)
useradd -d /var/ftp/vuserdir -s /sbin/nologin vuser
# 为虚拟用户linuxidc和muu创建虚拟目录
mkdir -m 555 /var/ftp/vuserdir/linuxidc
mkdir -m 755 /var/ftp/vuserdir/muu
# 改变属主和属组
chown -R vuser:vuser /var/ftp/vuserdir/
# 创建虚拟用户文件(/etc/vsftpd/vftpuser.txt),内容如下
linuxidc
111
muu
222
# 生成虚拟用户数据库文件
db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
# 安全起见,修改权限
chmod 600 /etc/vsftpd/vftpuser.db
# 修改/etc/pam.d/vsftpd文件,注释原来的内容,添加以下内容
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
# 用以下内容替换/etc/vsftpd/vsftpd.conf文件原来的内容
listen=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/user_config
guest_enable=YES
guest_username=vuser
anonymous_enable=NO
local_enable=YES
# 创建虚拟用户配置文件目录
mkdir /etc/vsftpd/user_config
# 为虚拟用户linuxidc创建个人配置文件(/etc/vsftpd/user_config/linuxidc),内容如下
local_root=/var/ftp/vuserdir/linuxidc
# 为虚拟用户muu创建个人配置文件(/etc/vsftpd/user_config/muu),内容如下:
local_root=/var/ftp/vuserdir/muu
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# 重启vsftpd服务:
service vsftpd restart
2、配置vsftpd服务器中chroot
在vsftpd服务器的默认设置中,本地用户可以切换到主目录以外的目录进行浏览访问,这样对于服务器来说是不太安全的,因为任何用户可以随时浏览到别的用户的私有信息,下面介绍如何使用chroot选项来防止这种情况的发生。
与该功能相关的选项主要包括:
- chroot_local_user
- chroot_list_enable
- chroot_list_file
可以通过如下两种方法来设置chroot,从而杜绝上述不安全的情况发生:
(1)设置所有的本地用户执行chroot,只要将/etc/vsftpd/vsftpd.con文件中的chroot_local_ user值置为YES,即chroot_local_user=YES。
(2)设置指定的用户执行chroot,按照如下方法进行设置:
chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
设置后,只有/etc/vsftpd.chroot_list文件中指定的用户才能够执行chroot命令。