缺點,ftp密碼是和系統密碼是一致的,并不安全
先設定兩個測驗用戶
test1 123123
test2 123123


基本用戶基礎配置
1、本地用戶基本配置
local_enable-YES #允許本地用戶登錄
write_enable=YES #允許本地用戶上傳
local_umask=022 #本地用戶上傳umask值
關閉防火墻,關閉SELinux,直接修改組態檔


重啟系統,重啟vsftp服務

在test1的家目錄下創建一個目錄


登陸的默認位置

上傳:
從本地的E盤上傳一個文本檔案

可以看到在/home/test1/目錄下就有了1.txt檔案

下載:


local_root=/var/ftp #設定本地用戶的ftp根目錄(注意目錄權限;不能針對不同用戶,是對所有登陸者都生效的)
local_max_rate=0 #限制最大傳輸速率(位元組/秒)

需要自行添加
創建目錄,重啟ftp服務(只要修改了組態檔)

客戶端退出重新登錄

但是用test2連接時也是在相同的路徑下了(在后面的虛擬用戶訪問中會有解決)

此時如果上傳檔案的話會出現以下問題

此時在組態檔中是允許寫操作的,但是并不能上傳,這是因為test1_root目錄test1用戶沒有權限,只有root權限(所有者是root,所有組也是root)

解決方法:
創建一個用戶組,將test1和test2添加到該組內

然后修改該目錄的所屬組和權限


重新上傳:
此時就可以啦


這種其實存在一個很大的缺陷,可以往上級目錄翻,有就是說,我可以訪問整個系統的所有檔案,雖然有些地方不能上傳,但是我都可以下載,此時就可以下載出用戶密碼檔案,很不安全



此時就要進行設定限制用戶只能在特定目錄下操作
把用戶限制在家目錄下:
chroot_local_user=YES #開啟用戶目錄限制(如果只開啟此行,把所有用戶都限制在用戶主目錄中)

重啟服務

重新登錄后,會顯示直接在根目錄下

但是ls后,看到的是1.txt也就是/tmp/test1_root/目錄下的內容,也就是說ftp將/tmp/test1_root/目錄就當做是根目錄

開啟以下三項,就可以將不同的用戶做不同的限制了
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #寫入/etc/vsftpd/chroot_list檔案中的用戶可以訪問任何目錄,其他用戶限制在哪用戶主目錄

檔案chroot_list默認是不存在的需要手工添加,然后直接將用戶名寫進去就好了
重啟
我將用戶test2寫入該檔案
此時test1就只能訪問/tmp/test1_root/而test2用戶就可以訪問所有檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/151677.html
標籤:Linux
上一篇:linux系統的特殊符號
