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


实验1.配置只允许匿名用户可以上传和下载,并且具备可以删除和改名权限的vsftpd服务器,本地用户不能登陆


1.修改vsftpd主配置文件

[root@localhost vsftpd]# vim vsftpd.conf

anonymous_enable=YES          #启用匿名访问
local_enable=NO               #禁用本地系统用户
write_enable=YES              #启用写入权限
download_enable=YES            #允许下载文件    
anon_mkdir_write_enable=YES    #允许创建目录
anon_other_write_enable        #开放其他写入权
anon_upload_enable=YES         #允许上传文件

2.重启vsftpd服务

[root@localhost ~]# service vsftpd restart

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

3.用户登录验证

[root@localhost vsftpd]# 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
530 Permission denied.
Login failed.
ftp>                             #root用户登录失败,不允许本地用户登录


[root@localhost var]# !ftp

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> pwd
257 "/"
ftp> mkdir a
550 Create directory operation failed.
#唉~发现竟然不可以创建文件,通过提示知道是权限问题,可以刚刚在配置文件中已经给了写权限,那么就是ftp服务器的根目录不允许写入,那退出去看下

[root@localhost ~]# ll -ld /var/ftp
drwxr-xr-x. 4 root root 4096 Jul 30 05:20 /var/ftp

#果然没有写权限,一般这种情况大家也许都会想,那给other加给写的权限不就行了么,那好,我们试试

4.实验调试

[root@localhost ~]# chmod o+w /var/ftp/    #给服务器根目录添加写权限
[root@localhost ~]# !ftp

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:
500 OOPS: vsftpd: refusing to run with writable anonymous root
Login failed.                            #登录失败
ftp>    #这次连登录都失败了,根据提示可知ftp根目录的other加了w(写权限)后不允许匿名登录,那怎么办呢?其实我们可以稍微做点改变,既然根目录不能改,那我们就在根目录下新建个文件并加上w权限看看。

[root@localhost ~]# chmod o-w /var/ftp        #去掉ftp服务根目录的其他用户的写权限
[root@localhost ~]# mkdir /var/ftp/test
[root@localhost ~]# chmod o+w /var/ftp/test/    #在根目录下面新建一个文件夹test并加上w权限


5.再次登录验证

[root@localhost ~]# !ftp

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> cd test                              #进入test目录
ftp> pwd
257 "/test"            
ftp> mkdir a 
257 "/test/a" created                        #创建文件夹成功
ftp> ls
drwx------    2 14       50           4096 Jul 29 21:39 a
ftp> rename a b                             #可以重命名
ftp> ls
drwx------    2 14       50           4096 Jul 29 21:39 b
ftp> !ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
ftp> put user_list                      #上传成功
ftp> rename user_list 123
350 Ready for RNTO.
250 Rename successful.
ftp> get 123                               #下载成功
local: 123 remote: 123
227 Entering Passive Mode (192,168,1,88,221,161).
150 Opening BINARY mode data connection for 123 (361 bytes).
226 Transfer complete.
361 bytes received in 3.5e-05 secs (10314.29 Kbytes/sec)
ftp> !ls
123  ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh