vsftpd 虚拟用户 搭建-阿里云开发者社区

开发者社区> 开发与运维> 正文

vsftpd 虚拟用户 搭建

简介:

系统环境:

[root@RHCE ~]# cat /etc/redhat-release 

CentOS Linux release 7.2.1511 (Core) 

[root@RHCE ~]# uname -r

3.10.0-327.el7.x86_64

[root@RHCE ~]# ip addr show enp0s8 | awk 'NR==3{print $2}'

192.168.235.36/24

安装vsftpd:

[root@RHCE ~]# yum install -y vsftpd


vsftpd 虚拟用户配置 :

[root@RHCE ~]# vim  /etc/vsftpd/vsftpd.conf

#修改为如下值

[root@RHCE ~]# cat /etc/vsftpd/vsftpd.conf | grep -v "#" | grep -v "^$" 

anonymous_enable=NO         #关闭匿名访问

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd.vu    #修改pam认证文件

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES          #开启虚拟用户功能

guest_username=virtual   #虚拟用户映射的本地用户

user_config_dir=/etc/vsftpd/viruser.d/    #虚拟用户的配置文件存放目录

allow_writeable_chroot=YES     

#一些被注释默认配置没有显示


[root@RHCE ~]# mkdir /etc/vsftpd/viruser.d


#创建虚拟用户

[root@RHCE vsftpd]# cat /etc/vsftpd/vuser.txt   

abc  #用户名

123  #密码

asd 

123


#创建本地用户

[root@RHCE vsftpd]# adduser -s /sbin/nologin -d /var/ftpvir virtual

[root@RHCE vsftpd]# chmod 777 /var/ftpvir

[root@RHCE ~]# cd /etc/vsftpd/

[root@RHCE vsftpd]# db_load -T -t hash -f vuser.txt vuser.db

[root@RHCE vsftpd]# file vuser.db 

vuser.db: Berkeley DB (Hash, version 9, native byte-order)


#创建PAM认证文件

[root@RHCE vsftpd]# cat /etc/pam.d/vsftpd.vu 

#%PAM-1.0

auth       required    pam_userdb.so db=/etc/vsftpd/vuser

account       required    pam_userdb.so db=/etc/vsftpd/vuser


#创建测试文件

[root@RHCE vsftpd]# echo "hello" > /var/ftpvir/test.txt 

[root@RHCE vsftpd]# chown virtual.virtual /var/ftpvir/test.txt 


#开启服务

[root@RHCE vsftpd]# systemctl start vsftpd


#安装ftp客服端

[root@RHCE vsftpd]# yum install -y ftp 


#用虚拟用户 abc 登陆 密码:123 

[root@RHCE vsftpd]# ftp 192.168.235.36

Connected to 192.168.235.36 (192.168.235.36).

220 (vsFTPd 3.0.2)

Name (192.168.235.36:root): abc

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (192,168,235,36,107,239).

150 Here comes the directory listing.

-rw-r--r--    1 1000     1000            6 Mar 27 12:10 test.txt

226 Directory send OK.

ftp> 

#登陆成功!


#设置上传权限

[root@RHCE vsftpd]#mkdir  /etc/vsftpd/viruser.d/

[root@RHCE vsftpd]# echo "anon_upload_enable=YES" > /etc/vsftpd/viruser.d/abc

[root@RHCE vsftpd]# cat /etc/vsftpd/viruser.d/abc

anon_upload_enable=YES


[root@RHCE vsftpd]# systemctl restart vsftpd


#测试上传权限

[root@RHCE vsftpd]# ftp 192.168.235.36

Connected to 192.168.235.36 (192.168.235.36).

220 (vsFTPd 3.0.2)

Name (192.168.235.36:root): abc

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> put     #连按两下Tab建可以查看当前目录(登录ftp时,所在的目录)下有什么文件。

ftpusers                viruser.d/              vsftpd_conf_migrate.sh  vuser.txt

user_list               vsftpd.conf             vuser.db                

ftp> put vuser.txt 

local: vuser.txt remote: vuser.txt

227 Entering Passive Mode (192,168,235,36,147,170).

150 Ok to send data.

226 Transfer complete.

16 bytes sent in 9e-06 secs (1777.78 Kbytes/sec)

ftp> ls

227 Entering Passive Mode (192,168,235,36,23,86).

150 Here comes the directory listing.

-rw-r--r--    1 1000     1000            6 Mar 27 12:10 test.txt

-rw-------    1 1000     1000           16 Mar 27 12:21 vuser.txt

226 Directory send OK.

ftp> 

#上传成功


更多权限在 man 5 vsftpd.conf 可以查看。










本文转自 chaunceyjiang  51CTO博客,原文链接:http://blog.51cto.com/cqwujiang/1910901,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章