Apache-2.2
授予 apache ID 權限以作為作業系統使用者列出和 CRUD 文件
我不確定這個問題是屬於這裡還是屬於SO。如果需要,我可以把它移到那裡。
在任何像樣的 Apache 配置中,Apache 都會作為自己的 ID 執行;
www-data
例如。並且此 ID 將無權將CRUD文件列為其他作業系統帳戶。這是出於安全設計。我希望能夠以某種方式將 Apache 列表或 CRUD 文件作為另一個作業系統帳戶。例如,在帳戶的主目錄中列出文件或在帳戶的主目錄中創建新的文本文件。
我知道一種解決方案是使用文件/文件夾組權限,但我不能這樣做,因為我無法處理文件/文件夾所有權或權限。
我查看了suEXEC、suPHP和php-fpm,但它們都不起作用,因為它們將以腳本所有者的身份執行腳本。就我而言,我正在執行類似
cp
或mv
作為任意數量的作業系統帳戶的命令。我可以使用這些工具的唯一方法是為每個作業系統帳戶設置一個腳本。或者擁有一個屬於root
但聽起來不安全的腳本。於是我開始思考
sudo
。我可以授予www-data
sudo
作業系統帳戶特權。文件中的條目範例
sudoers
:www-data ALL = (osAccount1) NOPASSWD: /bin/ls, /bin/mv www-data ALL = (osAccount2) NOPASSWD: /bin/ls, /bin/mv
但這只是冒著風險。我無法指出如何或為什麼——它只是感覺很難看。
有沒有做我想做的事?
我知道一種解決方案是使用文件/文件夾組權限,但我不能這樣做,因為我無法處理文件/文件夾所有權或權限。
傳統的使用者組其他文件權限
chmod
chown
chgrp
(該方法會因文件系統和版本而有所不同,但考慮使用 acl 支持和使用(重新)掛載文件系統,setfacl
或者setrichacl
為現有的 UGO 權限設置額外的 ACL,這將授予您的網路伺服器所需的訪問權限。