缺點,ftp密碼是和系統密碼是一致的,並不安全 先設置兩個測試用戶 test1 123123 test2 123123 基本用戶基礎配置 1、本地用戶基本配置 local_enable-YES #允許本地用戶登錄 write_enable=YES #允許本地用戶上傳 local_umask=022 ...
缺點,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用戶就可以訪問所有文件