FTP 使用者在 chroot 後看不到任何文件

FTP 使用者在 chroot 後看不到任何文件

在 Debian Wheezy 64 位元上,我為客戶建立一個新使用者以將檔案放入目錄中。建立使用者後,我透過替換/bin/bash/bin/falsein來取消他的互動式登入/etc/passwd。然後我將他加入/etc/ftpchroot,以便他的會話將被 chroot 到他的主目錄。

但是,一旦我將用戶添加到/etc/ftpchroot,當用戶登入時,他就看不到任何文件。用戶被chrooted,無法向上遍歷。他可以上傳文件,這些文件儲存在正確的目錄中,並具有 640 權限和 thatuser:thatusersgroup 所有權。

到目前為止我的想法:

  • /etc/ftpchroot顯然是在做某事,並且在做,應該做的事情。
  • 在該電腦上建立的任何使用者都有此問題(與其他新使用者嘗試了兩次)
  • 它不依賴目錄。改變他的主目錄並chroot到那裡顯示了同樣的問題。

這對我來說很奇怪,因為我以前做過很多次,但從未遇到過這種情況。遺憾的是,由於問題描述有問題,因此很難透過谷歌搜尋找到答案。

編輯1:我現在看到的東西。在 ftpchroot 下登入時,登入成功完成後不會顯示任何訊息。但/etc/motd完成身份驗證後,顯示「login without ftpchroot」 。

編輯2:我透過安裝inetutils-ftpd.它帶來了 PAM 身份驗證,配置後,它可以登入同一用戶而不會出現上述問題,並且他可以毫無問題地上傳和查看他的文件。

答案1

當您使用 chroot 時,您想要在 chroot 中使用的任何二進位檔案都必須存在於該 chroot 中。對於 ftpchroot,這通常意味著 ftpd 需要ls在其自己的二進位檔案中具有功能,而不是依賴/bin/ls系統的功能,否則每個使用者都必須擁有自己的$HOME/bin/ls.

因此,解決方案是使用內建的 ftp 守護程式ls(或使用 --ls-included 重新編譯它,或任何適合此特定 ftp 守護程式的選項)。

相關內容