linux下ftp服務階段實驗(2)

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

Changing password for user xixi.

 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.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章