2024年5月31日发(作者:)

vsftpd下设置多个虚拟用户使用同一个目录

企业环境

公司为了能够方便和合作伙伴沟通最新的产品信息,计划搭建FTP服务

器,给合作伙伴提供相关文档的下载。内部管理员对FTP服务器共享目录有

上传、下载、删除和修改产品信息的权限。公司的合作伙伴能够使用FTP

服务器进行上传和下载,但不可以删除数据。并且保证服务器的稳定性,进

行适当优化设置~

需求分析

根据企业的需求,对于不同用户进行不同的权限限制,FTP服务器需要

实现用户的审核。考虑到服务器的安全性,关闭实体用户登录,使用虚拟帐

号验证机制,并对不同虚拟帐号设置不同的权限。同时为了保证服务器的性

能,还需要根据用户的等级,限制客户端的连接数及下载速度。

解决方案

首先用vi打开/etc/vsftpd/ 这个配置文件,进入编辑模式,将

anonymous_enable=YES 的YES改为NO(不让匿名用户访问ftp服务器)

1、建立虚拟用户文件

vi /etc/vsftpd/vsftpd_

admin #内部管理员账号

desheng_ #内部管理员账号密码

vip #合作伙伴账号

desheng@ #合作伙伴账号密码

建立完成之后保存退出。

2、生成虚拟用户数据库

要生成用户数据库,需要用到db_load命令,可以用rpm -qa | grep db4命

令来查看是否有安装。

作者:江西新华电脑学院 2013-4-6

db_load -T -t hash -f /etc/vsftpd/vsftpd_ /etc/vsftpd/vsftpd_

3、配置PAM文件

若要服务器能够使用数据库文件,对客户端进行身份验证,就必须要修

改vsftpd对应的PAM配置文件/etc/pam.d/vsftpd。用vi打开这个文件有如下

内容:

%PAM-1.0

session optional pam_ force revoke

auth required pam_ item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth required pam_

auth include system-auth

account include system-auth

session include system-auth

session required pam_

把这些默认配置全部用“#”号注释掉,然后加上我们需要用到的配置。

#%PAM-1.0

#session optional pam_ force revoke

#auth required pam_ item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

#auth required pam_

#auth include system-auth

#account include system-auth

#session include system-auth

#session required pam_

auth required /lib/security/pam_ db=/etc/vsftpd/vsftpd_virtualuser

account required /lib/security/pam_ db=/etc/vsftpd/vsftpd_virtualuser

4、创建虚拟帐号对应的系统用户

useradd -d /data/share -s /sbin/nologin ftpadmin

useradd -d /data/share -s /sbin/nologin ftpvip

创建download用户的时候会提示一些警告信息,我们先不管。

为2个虚拟账号创建密码,必须要和vsftpd_virtualuser文件里面的密码

相同。

passwd ftpadmin #密码 desheng_

passwd ftpvip #密码 desheng@

作者:江西新华电脑学院 2013-4-6