Ftp

使用 vsftpd 將 FTP 訪問限制為僅對 /var/www 的訪問

  • April 17, 2019

我在我的 linux (rasbian) 上將 vsftpd 作為 ftp 伺服器執行,我以 root 使用者身份登錄機器。

我想仍然被鎖定為只使用 /var/www,我該如何配置 vsftpd conf 來完成它?

方法1:更改使用者的主目錄

確保存在以下行

chroot_local_user=YES

將使用者 HOME Directory 設置為/var/www/,如果要更改現有使用者,則可以使用:

usermod --home /var/www/ username

然後設置所需的權限/var/www/

方法二:使用user_sub_token

如果您不想更改使用者的主目錄,則可以使用:

chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER

關於user_sub_token

根據模板自動為每個虛擬使用者生成一個主目錄。例如,如果通過 guest_username 指定的真實使用者的主目錄是 /ftphome/ $ USER, and user_sub_token is set to $ USER,那麼當虛擬使用者 test 登錄時,他最終會(通常是 chroot()’ed)在目錄 /ftphome/test 中。如果 local_root 包含 user_sub_token,此選項也會生效。

創建目錄並設置權限:

mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test

一旦重新啟動vsftpd並測試您的設置。

範例成功輸出:

[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts? 
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r--    1 787      787            24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.

引用自:https://unix.stackexchange.com/questions/94603