Apache-2.2

在 Mac OS X 上為通過 FTP 和 SFTP 創建的文件設置預設權限

  • December 4, 2012

我的 Mac OS X 伺服器上有 2 個使用者,都在“wheel”組中。如果使用者 A 通過 SFTP/FTP 創建文件,使用者 B 可以讀取文件,但不能寫入文件,因為預設文件權限是 644,允許所有者讀/寫,但只允許組讀取。

如何在 Mac OS X 10.8 上將預設 FTP 和 SFTP 文件權限更改為 664?

預設的新文件權限由 umask 設置控制。您需要 002 的 umask 來將權限設置為 664。

對於 FTP 伺服器,我通常在 ftp 伺服器配置文件中看到 umask 設置。對於 SFTP,因為這與您常用的命令 shell 有關,我認為您需要更改這些使用者的預設系統 umask。(或者更好的是,如果您可以僅為 sftp 子系統更改 umask,那就更好了)

也就是說,在我更熟悉的 linux 系統上,共享寫入功能由稱為使用者私有組 (UPG) 方案的東西處理。該方案為每個新使用者創建一個新組並將其作為主要組。在這些系統中,umask 設置為 002,這意味著權限將出現 664(從 666 中減去 umask 以獲得文件的最終權限。使用 777 表示 dirs)。在這些系統中,為了在使用者之間對給定目錄中的文件進行共享寫入,通常將目錄的組設置為一個共同的組,兩者都是其成員,然後執行“chmod g+s directory_name/”。

我對 MacOS 不是很有經驗,但發現了一篇很棒的文章,討論了在 OSX 10.3 或更高版本中設置 UPG: http ://hints.macworld.com/article.php?story=2006010714524168

我個人會嘗試找出如何僅對 sftp 子系統執行此操作,而不是將其應用於整個系統。我不完全理解將 umask 全域更改為 002 對附帶 umask 022 的系統的影響。我擔心的事情是 - root 創建的文件最終會得到什麼權限?這有什麼影響?系統賬戶呢?等等

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