Mount

在 chrooted sftp 環境中強制組分配

  • November 16, 2013

我有以下設置:

有幾個使用者 /home/user1、/home/user2 等等。另外還有一個使用者 /home/sftp-all。文件夾 /home/sftp-all/shared 安裝在每個其他使用者的 /home 目錄中,例如 /home/user1/shared。所有使用者 user1,user2,…,sftp-all 都是名為“sharegroup”的組的成員。

現在的問題是,如果其中一個使用者(user1,…)寫入該文件夾,則新文件歸使用者和他的主要組所有(例如 user1:user1,..)。相反,我希望它歸 user1:sharegroup 所有。任何想法如何解決這個問題?先感謝您!

您應該考慮在文件系統上使用 ACL 權限。您可以設置“預設”權限,並且可以擁有多個組、使用者等。

https://help.ubuntu.com/community/FilePermissionsACLs

有關更多資訊,請參閱其他文章的答案:

https://superuser.com/questions/381416/forcing-group-and-permissions-for-created-file-inside-folder

設置 sgid 位以便在目錄上啟用它/home/sftp-all/shared,並創建此目錄的組sharegroup

$ chmod g+s /home/sftp-all/shared

最後確保其中任何預先存在的文件/home/sftp-all/shared都將其組設置為sharegroup. 這可以這樣做:

$ chgrp sharegroup /home/sftp-all/shared/*

通過在目錄上設置 xgid 位,您將強制在任何時候在其中創建新文件時傳播組所擁有的目錄,即目錄。此方法僅適用於新創建的文件,例如,如果有人要將文件從系統上的其他位置移動到此目錄中,則不會強制執行組所有權。

但是,鑑於這是一個 SFTP 伺服器應用程序,我想不出使用者能夠以任何方式將文件移動到 SFTP 之外的此目錄中。

引用自:https://serverfault.com/questions/555357