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

来源:互联网 发布:澳洲股市行情软件app 编辑:程序博客网 时间:2024/05/31 15:19

原文地址: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选项来防止这种情况的发生。

与该功能相关的选项主要包括:

  1. chroot_local_user
  2. chroot_list_enable
  3. chroot_list_file

可以通过如下两种方法来设置chroot,从而杜绝上述不安全的情况发生:

(1)设置所有的本地用户执行chroot,只要将/etc/vsftpd/vsftpd.con文件中的chroot_local_ user值置为YES,即chroot_local_user=YES。

(2)设置指定的用户执行chroot,按照如下方法进行设置:

chroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_list

设置后,只有/etc/vsftpd.chroot_list文件中指定的用户才能够执行chroot命令。


阅读全文
0 0