linux下ftp服务阶段实验(3)
3. (1)匿名用户的FTP根目录是/ftp,只能下载,下载速度为100Kbps (2)本地用户hello的FTP根目录为/hello,可以上传下载,家目录被锁定,下载速度为200Kbps (3)管理员root的FTP根目录为/admin,可以上传下载,家目录不被锁定,下载速度不限制 注意以上用户的本地宿主目录不要修改
1.修改vsftpd主配置文件
代码语言:javascript复制[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.为不同的用户建立独立的配置文件
#编辑匿名用户独立配置文件
代码语言:javascript复制[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独立配置文件
代码语言:javascript复制[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独立配置文件
代码语言:javascript复制[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家目录
代码语言:javascript复制[root@localhost /]# mkdir ftp hello admin
#在家目录新建一些标识性空文件
代码语言:javascript复制[root@localhost /]# touch ftp/ftp
[root@localhost /]# touch hello/hello
[root@localhost /]# touch admin/admin
#给hello文件添加写权限
代码语言:javascript复制[root@localhost /]# chown o w hello/
4.添加hello用户并重启vsftpd服务
代码语言:javascript复制[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
代码语言:javascript复制[root@localhost ~]# vim /etc/vsftpd/ftpusers
[root@localhost ~]# vim /etc/vsftpd/user_list
代码语言:javascript复制[root@localhost ~]# service vsftpd restart
Shutting down vsftpd: [FAILED] Starting vsftpd for vsftpd: [ OK ]
5.验证用户登录
#测试匿名用户登录
代码语言:javascript复制[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用户登录
代码语言:javascript复制[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用户登录
代码语言:javascript复制[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>