背景

背景

我有一個用戶 myuser,只允許透過 sftp 連接到 ssh。我希望該用戶始終使用 rwx-rwx-rx 建立文件,並且始終由 apache 群組擁有。我嘗試使用 umask 來完成檔案權限部分,但在 umask 中,檔案和目錄對同一 umask 取得不同的權限。感謝幫助。

答案1

背景

這是sftp文件共享的一個長期存在的問題。這是因為產生的權限是基於用戶端檔案的原始權限的,而 umask( -u) 參數並不是強制這樣的權限,而只是剝離不需要的權限。這意味著只有當使用者嘗試在具有權限的情況下上傳文件時0777,才會應用該文件並將其剝離到0775.否則就保持原樣。例如,如果使用者在其檔案系統上儲存了具有權限的文件0700,則上傳後該文件也會顯示為0700.

解決方案

最近,我們透過應用補丁在 Fedora 中解決了這個問題,該補丁使用-m切換到sftp-server.它是基於這個上游錯誤:

https://bugzilla.mindrot.org/show_bug.cgi?id=1844

這在目前可用CentOS 7.2。來自變更日誌:

 - Add sftp option to force mode of created files (#1197989)

解決方法

cron除了一些定期運行腳本(來自),修復錯誤的權限之外,沒有其他優雅的解決方案。這可能是 bash 中的一些俏皮話,但我想你可以想到一些。如果您有興趣,我可以詳細說明這一點。

或者您可以用來inotify提前“捕獲”更改。


群組應該是從父目錄繼承的,不是嗎?

相關內容