linux下ftp服务阶段实验(2)
2.创建只允许本地用户登陆vsftpd服务器,所有本地用户只能上传不能下载,本地用户共同的根目录是/user/ftp,可以删除自己上传的文件,但不能删除别人上传的文件,而且不能切换根目录,允许root访问,root可以切换目录,但禁止用户haha访问FTP服务
1.修改vsftpd主配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名用户登录
local_root=/var/ftp/ #定义本地用户所有用户的根目录
chroot_local_user=YES #将本地用户禁锢在自己的家目录
chroot_list_enable=YES #列表中的用户不被禁锢自己的家目录
chroot_list_file=/etc/vsftpd/chroot_list #定义列表文件路径
userlist_deny=NO #允许user_list中的用户登录
download_enable=NO #不允许下载
下面的命令可查看配置文件有效参数
[root@localhost vsftpd]# grep -v ^# /etc/vsftpd/vsftpd.conf |grep -v ^$
2.修改/etc/vsftpd/chroot_list文件,让root可以切换目录
[root@localhost vsftpd]# vim /etc/vsftpd/chroot_list [root@localhost vsftpd]# cat /etc/vsftpd/chroot_list
root #添加root用户,让root可以切换目录
3.注释掉/etc/vsftpd/ftpusers所有用户,并添加haha用户到其中
[root@localhost vsftpd]# vim /etc/vsftpd/ftpusers [root@localhost vsftpd]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
#上面注释的表明在这里声明的用户不被允许登录ftp
#root
#bin
...
haha
4.添加三个用户xixi、haha、hehe,密码都设置为123
[root@localhost ~]# useradd xixi [root@localhost ~]# echo "123"|passwd xixi --stdin
passwd: all authentication tokens updated successfully.
[root@localhost ~]# useradd haha [root@localhost ~]# echo "123"|passwd haha --stdin [root@localhost ~]# useradd hehe [root@localhost ~]# echo "123"|passwd hehe --stdin
5.修改/etc/vsftpd/user_list文件,
[root@localhost ~]# vim /etc/vsftpd/user_list [root@localhost ~]# tail -3 /etc/vsftpd/user_list
#在此文件中的用户才可以登录,root也在里面,显示的是添加的新建的两个用户xixi和hehe
nobody
xixi
hehe
6.ftp根目录给其他用户加上wt权限,重启vsftpd服务
[root@localhost ~]# chmod o+wt /var/ftp
#保证本地其他用户可写,并不能删除其他用户的文件
[root@localhost ~]# ll -ld /var/ftp/ drwxr-xrwt. 3 root root 4096 Jul 30 03:16 /var/ftp/
#重启服务
[root@localhost ~]# service vsftpd restart Shutting down vsftpd: [FAILED] Starting vsftpd for vsftpd: [ OK ]
7.验证用户登录
#测试匿名用户登录
[root@localhost ~]# ftp 192.168.1.88 #登录ftp服务器
Connected to 192.168.1.88 (192.168.1.88).
220 (vsFTPd 2.2.2)
Name (192.168.1.88:root): ftp
530 Permission denied.
Login failed. #匿名用户被拒绝登录
#测试haha用户登录
[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): haha
530 Permission denied.
Login failed. #用户haha被拒绝登录
ftp>
#测试xixi用户登录
[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): xixi
331 Please specify the password.
Password:
230 Login successful. #xixi登录成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> !ls #查看本地目录
anaconda-ks.cfg Desktop Documents Downloads install.log
install.log.syslog Music Pictures Public Templates Videos
ftp> ls. #查看ftp服务器上的文件
drwxr-xr-x 2 0 0 4096 Mar 02 2012 pub.
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,88,241,219).
150 Ok to send data.
226 Transfer complete #上传成功.
37842 bytes sent in 0.000242 secs (156371.90 Kbytes/sec)
ftp> rename install.log 123
ftp> ls
-rw-r--r-- 1 501 501 37842 Jul 29 20:05 123
drwxr-xr-x 2 0 0 4096 Mar 02 2012 pub
ftp> get 123
local: 123 remote: 123
227 Entering Passive Mode (192,168,1,88,132,118).
550 Permission denied. #下载失败
ftp> cd /root
550 Failed to change directory. #切换目录失败
#测试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. #root用户登录成功
Using binary mode to transfer files.
ftp> ls
-rw-r--r-- 1 501 501 37842 Jul 29 20:05 123
drwxr-xr-x 2 0 0 4096 Mar 02 2012 pub
ftp> get 123
local: 123 remote: 123
227 Entering Passive Mode (192,168,1,88,119,153).
550 Permission denied. #下载失败
ftp> put install.log
local: install.log remote: install.log
227 Entering Passive Mode (192,168,1,88,241,219).
150 Ok to send data.
226 Transfer complete #上传成功.
ftp> pwd
257 "/var/ftp"
ftp> cd /root
250 Directory successfully changed. #成功切换目录
ftp> pwd
257 "/root"
#测试hehe用户登录
ftp> [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): hehe
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX. #hehe登录成功
Using binary mode to transfer files.
ftp> ls
-rw-r--r-- 1 0 0 37842 Jul 29 20:08 123
-rw-r--r-- 1 501 501 37842 Jul 29 20:10 install.log
drwxr-xr-x 2 0 0 4096 Mar 02 2012 pub
ftp> delete install.log #删除其他用户文件失败
550 Delete operation failed.
ftp> cd /root #切换目录失败
550 Failed to change directory.