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.