多使用者 Linux 環境中的權限
這個問題已經被問過很多次了,但是我還沒有找到這種權限的解決方案。
我有一個在 chroot 中有多個網站的 VPS,每個網站都以唯一的使用者執行,沒有 root 權限。我正在嘗試實現一個部署腳本,該腳本由主使用者(也不是 root)執行,他可以訪問所有網站並修改所有文件。
一個共同的群體
我通常看到的第一個建議是創建一個組,其中包含主使用者和所有網站使用者。
據我了解,我將不得不將我的文件和文件夾的權限更改為 770(或類似的東西,賦予組與所有者相同的權限)。但是,我經常遇到這些權限被“重置”為 700(或類似,組失去權限)。我的大多數網站都是建立在 Wordpress 上的,它可能有一些自動安全的東西,可以重置過度的權限。此外,如果開發人員在本地更改了組權限,並上傳了這些權限,則權限將被更改。
我正在尋找更穩定的解決方案 - 任何線索?
乾杯:)
如果網路伺服器沒有更改 files.dirs 的權限,則它不能更改所有權。
雖然這裡沒有足夠的資訊來設計安全模型,但總的來說,我發現基於“其他”權限的網路伺服器 uid 訪問通常是最好的方法 - 因此目錄應該是 drwxrwSr-x (由包括使用者的組擁有需要修改訪問權限但不包括 webserver uid,請注意使用 setgid 位)和文件 -rw-rw-r–(如果您需要通過 webserver uid 編輯文件,請使用 drwxrwxrwx)。
但這不一定是您案例的最佳/完整模型 - 當您說網站在 chroot 中時,您的意思是它們都在同一個 chroot 中嗎?或者你有多個 webserver 實例,每個實例都在它們自己的 chroot 中執行?在第二種情況下,拆分使用者ID是多餘的,我上面描述的模型是合適的。
當然,您不希望允許 webserver uid 權限在文件根目錄中寫入任何文件,除非那些專門為此目的指定的文件除外。
因此,聽起來您可能應該擁有部署使用者擁有的所有文件/目錄,並且只有 2 個成員(部署使用者和網路伺服器 uid)擁有組的組所有權,並將您的目錄/文件創建為 drwxr-S– - / -rw–r—– (再次指定上傳目錄/文件為 drwxrwS— / -rw–rw—-)