Chroot

設置 vsftp

  • June 17, 2021

初學者

你好,

所以對於學校作業,我必須在 OpenSUSE 上設置一個 FTP 伺服器 (vsftp)。老師告訴我們使用 chroot 列表,但每當我使用 chroot 列表時,所有使用者都可以完全控制整個文件系統。我究竟做錯了什麼?

情況 包含數據的目錄。該目錄內部是另外兩個目錄。其中一個屬於赫爾曼,另一個屬於弗朗茨。Franz 和 Herman 應該能夠在他們自己的目錄中工作,所以我將他們的主目錄指向各自的目錄(/data/Franz 和 /data/Herman)。Herman 不應該能夠在 Franz 的目錄中讀取或寫入,反之亦然。最後,我將目錄的權利和所有權更改為如下所示:

  drwxrwxr-x 15 Herman FTP 4096 May 13 15:23 Herman
  drwxrwxr-x 18 Franz  FTP 4096 May 13 14:48 Franz

這是我在vsftpd.conf文件中更改的內容。除此之外,一切都保持不變和預設。

  write_enable = YES
  local_enable = YES
  chroot_local_user = YES
  allow_writeable_chroot = YES
  anonymous_enable = NO
  listen = YES
  listen_ipv6 = NO (we may do not use IPv6)

我已經嘗試取消註釋chroot_list_enable=YES並在 chroot_list 中創建包含我想要的所有使用者的文件。這似乎打破了一切。每當我取消註釋有關chroot_lists的所有內容時,它都會按預期工作,但根據我的老師的說法是“錯誤的”。他並沒有真正解釋清楚,所以這就是我在這裡問的原因!

誰能把我推向正確的方向?謝謝 :)

非常感謝<3

找到的文件man vsftpd.conf如下所示,

**chroot_list_enable**如果啟動,您可以提供一個本地使用者列表,這些本地使用者在登錄時被放置在其主目錄中的 chroot() 監獄中。

到目前為止還可以。但它繼續,

chroot_local_user如果設置為 ,則含義略有不同YES。在這種情況下,該列表成為不被放置在 chroot() 監獄中的使用者列表。

$$ … $$

稍微進一步閱讀,我們會看到對chroot_local_user,

**chroot_local_user**如果設置為YES,本地使用者將(預設情況下)在登錄後被放置在其主目錄中的 chroot() 監獄中。

$$ … $$

我在您的配置中看到您已啟用chroot_local_user = YES. 因此,當您“取消註釋chroot_list_enable=YES並在 chroot_list 中創建包含我想要的所有使用者的文件”時,您實際上是在創建一個您在 chroot 環境中不需要的使用者的文件。

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