实现不同虚拟用户具有不同家目录和权限


需求
用户bkjia的家目录为/var/ftp/vuserdir/bkjia,他只有下载权限,没有其他权限(创建目录、重命名、删除、上传等);
用户muu的家目录为/var/ftp/vuserdir/muu,他有所有权限。

配置

# 创建本地用户(用于映射虚拟用户)
useradd -d /var/ftp/vuserdir -s /sbin/nologin vuser

# 为虚拟用户bkjia和muu创建虚拟目录
mkdir -m 555 /var/ftp/vuserdir/bkjia
mkdir -m 755 /var/ftp/vuserdir/muu

# 改变属主和属组
chown -R vuser:vuser /var/ftp/vuserdir/

# 创建虚拟用户文件(/etc/vsftpd/vftpuser.txt),内容如下
bkjia
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

# 为虚拟用户bkjia创建个人配置文件(/etc/vsftpd/user_config/bkjia),内容如下
local_root=/var/ftp/vuserdir/bkjia

# 为虚拟用户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

玩转vsftpd服务器的四大高级配置:

vsFTPd配置教程:

Ubuntu实用简单的FTP架设

Ubuntu 上架设FTP服务器和Apache服务器

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置

RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例

Linux系统vsftpd源码安装

openSUSE 13.2/13.1 下安装配置 FTP服务器 vsftpd 

本文永久更新链接地址

相关内容