linux下ftp服务阶段实验(3)
3. (1)匿名用户的FTP根目录是/ftp,只能下载,下载速度为100Kbps
(2)本地用户hello的FTP根目录为/hello,可以上传下载,家目录被锁定,下载速度为200Kbps
(3)管理员root的FTP根目录为/admin,可以上传下载,家目录不被锁定,下载速度不限制
注意以上用户的本地宿主目录不要修改
1.修改vsftpd主配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
#需要添加和修改的地方
chroot_local_user=YES #将本地用户禁锢在自己的家目录
chroot_list_enable=YES #列表中的用户不被禁锢自己的家目录
chroot_list_file=/etc/vsftpd/chroot_list #定义列表文件路径
user_config_dir=/etc/vsftpd/ftp #定义用户独立配置文件的路径
2.为不同的用户建立独立的配置文件
#编辑匿名用户独立配置文件
[root@localhost ~]# vim /etc/vsftpd/ftp/ftp
[root@localhost ~]# cat /etc/vsftpd/ftp/ftp
anonymous_enable=YES #允许匿名用户登录
anon_root=/ftp #定义匿名用户根目录
anon_upload_enable=NO #不允许匿名用户上传
local_max_rate=100000 #最大下载速度为100k
#编辑用户hello独立配置文件
[root@localhost ~]# vim /etc/vsftpd/ftp/hello
[root@localhost ~]# cat /etc/vsftpd/ftp/hello
local_root=/hello #定义用户的根目录
write_enable=YES #允许用户上传
download_enable=YES #允许用户下载
local_max_rate=200000 #最大下载速度为200
#编辑用户root独立配置文件
[root@localhost ~]# vim /etc/vsftpd/ftp/root
[root@localhost ~]# cat /etc/vsftpd/ftp/root
local_root=/admin #定义用户的根目录
write_enable=YES #允许用户上传
download_enable=YES #允许用户下载
local_max_rate=0 #无限速下载
3.创建用户ftp根目录并创建一些标识性文件。
#创建3个用户的ftp家目录
[root@localhost /]# mkdir ftp hello admin
#在家目录新建一些标识性空文件
[root@localhost /]# touch ftp/ftp
[root@localhost /]# touch hello/hello
[root@localhost /]# touch admin/admin
#给hello文件添加写权限
[root@localhost /]# chown o+w hello/
4.添加hello用户并重启vsftpd服务
[root@localhost ~]# useradd hello
[root@localhost ~]# echo "123"|passwd hello --stdin
Changing password for user hello.
passwd: all authentication tokens updated successfully.
#把以下两个文件中的root注释掉,不然root登录不了ftp
[root@localhost ~]# vim /etc/vsftpd/ftpusers
[root@localhost ~]# vim /etc/vsftpd/user_list
[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [FAILED]
Starting vsftpd for vsftpd: [ OK ]
5.验证用户登录
#测试匿名用户登录
[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): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files. #匿名用户登录成功
ftp> ls
-rw-r--r-- 1 0 0 0 Jul 29 19:51 ftp #根目录下有ftp文件
ftp> get ftp
local: ftp remote: ftp
227 Entering Passive Mode (192,168,1,88,24,212).
150 Opening BINARY mode data connection for ftp (0 bytes).
226 Transfer complete. #下载成功
ftp> !ls
~]# Desktop Downloads install.log Music Public Templates vim
anaconda-ks.cfg Documents ftp install.log.syslog Pictures [root@localhost Videos
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,88,118,42).
550 Permission denied. #上传失败
#测试hello用户登录
[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): hello
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files. #用户hello登录成功
ftp> !ls
anaconda-ks.cfg Documents install.log Music Public Templates vim
Desktop Downloads install.log.syslog Pictures [root@localhost Videos
ftp> ls
-rw-r--r-- 1 0 0 0 Jul 29 19:51 hello
ftp> get hello
local: hello remote: hello
227 Entering Passive Mode (192,168,1,88,131,202).
150 Opening BINARY mode data connection for hello (0 bytes).
226 Transfer complete. #下载成功
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,88,29,249).
150 Ok to send data.
226 Transfer complete. #上传成功
37842 bytes sent in 0.000236 secs (160347.45 Kbytes/sec)
ftp> pwd
257 "/"
ftp> cd /mnt
550 Failed to change directory. #切换目录失败
ftp>
测试root用户登录
[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): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files. #root用户登录成功
ftp> ls
-rw-r--r-- 1 0 0 0 Jul 29 19:51 admin
ftp> !ls
anaconda-ks.cfg Documents hello install.log.syslog Pictures [root@localhost Videos
Desktop Downloads install.log Music Public Templates vim
ftp> get admin
local: admin remote: admin
227 Entering Passive Mode (192,168,1,88,210,185).
150 Opening BINARY mode data connection for admin (0 bytes).
226 Transfer complete. #下载成功
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,88,203,93).
150 Ok to send data.
226 Transfer complete. #上传成功
37842 bytes sent in 8.8e-05 secs (430022.72 Kbytes/sec)
ftp> cd /root #切换目录成功
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,1,88,151,231).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Jul 29 19:28 Desktop
drwxr-xr-x 2 0 0 4096 Jul 29 19:28 Documents
drwxr-xr-x 2 0 0 4096 Jul 29 19:28 Downloads
drwxr-xr-x 2 0 0 4096 Jul 29 19:28 Music
drwxr-xr-x 2 0 0 4096 Jul 29 19:28 Pictures
drwxr-xr-x 2 0 0 4096 Jul 29 19:28 Public
-rw-r--r-- 1 0 0 0 Jul 29 20:18 admin
-rw------- 1 0 0 1386 Jul 29 19:24 anaconda-ks.cfg
-rw-r--r-- 1 0 0 0 Jul 29 20:07 hello
-rw-r--r-- 1 0 0 37842 Jul 29 19:24 install.log
-rw-r--r-- 1 0 0 8529 Jul 29 19:17 install.log.syslog
drwxr-xr-x 2 0 0 4096 Jul 29 19:40 vim
226 Directory send OK.
ftp>