Ftp
使用 vsftpd 將 FTP 訪問限制為僅對 /var/www 的訪問
我在我的 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.