linux下ftp服务阶段实验(4)

linux下ftp服务阶段实验(4)

4.搭建一个基于虚拟用户的FTP站点,要求三个虚拟用户vuser1、vuser2、vuser3登录后权限分别是:vuser1能下载不能上传,vuser2能上传不能下载,vuser3既能上传也能下载。

 

1.建立虚拟用户文件

#创建3个用户

[root@localhost ~]# vim /etc/vsftpd/vuser.txt
[root@localhost ~]# cat /etc/vsftpd/vuser.txt

 vuser1
123
vuser2
123
vuser3
123   

2.利用虚拟用户文件生成用户数据库
#先查看是否安装db4-utils这个软件

[root@localhost ~]# rpm -q db4-utils

db4-utils-4.7.25-17.el6.i686
#没有的话使用yum安装

[root@localhost ~]# yum install db4-utils -y

#生成用户数据库

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db

3.建立虚拟用户映射的系统账户

[root@localhost ~]# useradd vftp
[root@localhost ~]# chmod 755 /home/vftp/

#主目录权限为其他用户可读,默认为700

[root@localhost ~]# touch /home/vftp/vftp

4.建立PAM认证文件
#编辑一个新认证文件

[root@localhost ~]# vim /etc/pam.d/vftp
[root@localhost ~]# cat /etc/pam.d/vftp

auth  required /lib/security/pam_userdb.so  db=/etc/vsftpd/vuser
account required /lib/security/pam_userdb.so  db=/etc/vsftpd/vuser

5.修改主配置文件,启用虚拟用户

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# tail -6 /etc/vsftpd/vsftpd.conf

pam_service_name=vftp                    #修改认证的文件为vftp
guest_enable=YES                       #启用虚拟用户功能
guest_username=vftp                    #制定虚拟用户映射为本地用户vftp
user_config_dir=/etc/vsftpd/vftp     #定义用户独立配置文件的路径

6.为不同的虚拟用户建立独立的配置文件

[root@localhost ~]# mkdir /etc/vsftpd/vftp/
[root@localhost ~]# vim /etc/vsftpd/vftp/vuser1
[root@localhost ~]# cat /etc/vsftpd/vftp/vuser1

anon_upload_enable=NO     #禁止上传
download_enable=YES       #允许下载

[root@localhost ~]# vim /etc/vsftpd/vftp/vuser2
[root@localhost ~]# cat /etc/vsftpd/vftp/vuser2

anon_upload_enable=YES   #允许上传
download_enable=NO       #禁止下载

[root@localhost ~]# vim /etc/vsftpd/vftp/vuser3
[root@localhost ~]# cat /etc/vsftpd/vftp/vuser3

anon_upload_enable=YES   #允许上传
download_enable=YES      #允许下载

7.重启vsftpd服务

[root@localhost ~]# service vsftpd restart

Shutting down vsftpd:                                      [FAILED]
Starting vsftpd for vsftpd:                                [  OK  ]

8.验证虚拟用户登录

#测试vuser1用户登录

[root@localhost ~]# ftp 192.168.1.88

Connected to 192.168.1.88 (192.168.1.88).
220 (vsFTPd 2.2.2)
Name (192.168.1.88:root): vuser1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.                      #用户vuser1登录成功
Using binary mode to transfer files.
ftp> ls
-rw-r--r--    1 0        0               0 Jul 29 20:11 vftp
ftp> !ls
anaconda-ks.cfg  Desktop  Documents  Downloads install.log  

install.log.syslog  Music Pictures  Public  Templates  Videos
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,88,71,230).
550 Permission denied.                          #上传失败
ftp> get vftp
local: vftp remote: vftp
227 Entering Passive Mode (192,168,1,88,152,15).
150 Opening BINARY mode data connection for vftp (0 bytes).
226 Transfer complete.                           #下载成功
ftp> 

 

测试vuser2用户登录

[root@localhost ~]# ftp 192.168.1.88

ftp 192.168.1.88 
Connected to 192.168.1.88 (192.168.1.88).
220 (vsFTPd 2.2.2)
Name (192.168.1.88:root): vuser2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.            #用户vuser2登录成功
Using binary mode to transfer files.
ftp> ls
-rw-------    1 500      500          1386 Jul 29 20:46 anaconda-

ks.cfg
-rw-------    1 500      500         37842 Jul 29 20:48 install.log
-rw-r--r--    1 0        0               0 Jul 29 20:11 vftp
ftp> !ls
anaconda-ks.cfg  Desktop  Documents  Downloads install.log  

install.log.syslog  Music Pictures  Public  Templates  vftp  

ftp> put install.log.syslog 
local: install.log.syslog remote: install.log.syslog
227 Entering Passive Mode (192,168,1,88,131,160).
150 Ok to send data.
226 Transfer complete.              #上传成功
8529 bytes sent in 0.0302 secs (282.41 Kbytes/sec)
ftp> get vftp   

local: vftp remote: vftp
227 Entering Passive Mode (192,168,1,88,245,183).
550 Permission denied.             #下载失败

ftp>    

 

测试vuser3用户登录

[root@localhost ~]# ftp 192.168.1.88

ftp 192.168.1.88
Connected to 192.168.1.88 (192.168.1.88).
220 (vsFTPd 2.2.2)
Name (192.168.1.88:root): vuser3
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.             #用户vuser3登录成功
Using binary mode to transfer files.
ftp> ls
-rw-r--r--    1 0        0               0 Jul 29 20:11 vftp
ftp> !ls
anaconda-ks.cfg  Desktop  Documents  Downloads install.log  

install.log.syslog  Music Pictures  Public  Templates  Videos
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,88,143,119).
150 Ok to send data.
226 Transfer complete.                     #上传成功
37842 bytes sent in 0.000243 secs (155728.39 Kbytes/sec)
ftp> ls  

-rw-------    1 500      500         37842 Jul 29 20:23 install.log
-rw-r--r--    1 0        0               0 Jul 29 20:11 vftp
ftp> get vftp
local: vftp remote: vftp
227 Entering Passive Mode (192,168,1,88,232,49).
150 Opening BINARY mode data connection for vftp (0 bytes).
226 Transfer complete.                    #下载成功
ftp> 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux,ftp,FTP服务器,虚拟用户,阶段实验)