Rootop 服务器运维与web架构

vsftpd 虚拟用户 的实现

| 暂无评论

[root@rhel6www ~]# rpm -qa | grep vsftpd
vsftpd-2.2.2-6.el6_0.1.i686
[root@rhel6www ~]# yum install -y vsftpd

[root@rhel6www ~]#useradd -s /sbin/nologin vuser    //首先创建一个用户,用来将虚拟用户映射为系统账户

建立一个虚拟用户文档:
[root@rhel6www vsftpd]# cat vuser
venus
venus
一行用户名一行密码,多个用户往下按序排列。
[root@rhel6www vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db    //生成db文件
编辑vsftpd.conf添加:

guest_enable=yes                     //启用虚拟用户
guest_username=vuser             //映射为的系统账户
pam_service_name=vsftpd        //指定pam认证文件
user_config_dir=/etc/vsftpd/user_config    //在user_config下创建各个虚拟用户自身的配置文件(不同用户不同权限,所以使用独自配置文件)

###被动模式及端口####
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30100
###被动模式####

配置pam:
[root@rhel6www vsftpd]# vi /etc/pam.d/vsftpd

将已有的内容屏蔽,添加两行:
auth          required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
account     required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

(上面地方特别注意,系统如果为64位,那么需要把lib改为lib64)

创建虚拟用户配置文件:
[root@rhel6www vsftpd]# mkdir /etc/vsftpd/user_config
[root@rhel6www vsftpd]#vi /etc/vsftpd/user_config/venus    //配置文件要同名与用户名
添加:

local_root=/var/ftp/pub/venus         //指定家目录
download_enable=yes                          //下载
anon_upload_enable=yes                    //上传
anon_mkdir_write_enable=yes         //创建文件夹
anon_other_write_enable=yes           //可删除文件
local_umask=022
anon_umask=022
file_open_mode=0755

[root@rhel6www ~]# chown -R vuser:vuser /var/ftp/pub/*      //赋予家目录vuser属主属组,否则会没权限无法上传

启用了防火墙,需要修改iptables配置文件,放行被动端口:
[root@rhel6www ~]# vi /etc/sysconfig/iptables
添加:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 30000:30100 -j ACCEPT
保存重启iptables。测试。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/1687.html

作者:Venus

服务器运维与性能优化

发表回复