我正在創建一個Web應用程序(php),用於處理在活動服務器上創建Drupal網站。當所有(ALL)= ALL都離開apache時有什麼要注意的地方?
該系統能夠創建新的網站,並對現有的網站進行一些維護。而且,由於這是一個網絡託管環境,每個文件夾可能屬於不同的用戶。
爲了做到這一點,我需要讓apache
用戶像其他用戶一樣運行一些命令。
我做些什麼來創建新的文件(與git
/drush
/等互動)是類似於:
$some_command = `echo "PASSWD" | sudo -u USER -S do_something 2>&1; echo $?;`;
我已經對sudoers
文件的apache
用戶可以運行一組命令作爲git
用戶。
我現在的問題是我需要讓apache
作爲可能在服務器上有託管帳戶的任何用戶運行。
我的想法是在sudoers
文件中創建一個apache ALL=(ALL) ALL
條目。我仍然會離開所有那些要求用戶密碼的命令。
考慮到這一點,這種方法是否明智?如果不是,也許我可以將「全部允許」策略僅應用於擁有主機帳戶的用戶。如果是這樣,我如何將政策縮小到只有一個組?
感謝
編輯:我雖然使用suPHP這一點,因爲它允許Apache的運行每個PHP腳本作爲它的主人。但是我仍然需要以另一個用戶的身份運行一些其他命令(例如在別人的home文件夾/ public_html中創建文件),所以它似乎不是一個選項。
起初以爲可能是一個壞主意。所有用戶的網站是否也以Apache的身份運行?如果是這樣,考慮使用可以根據腳本的所有者切換PHP用戶的東西。我認爲這會繞過所有安全性,因爲任何人都可以編寫PHP腳本來閱讀或編輯其他用戶的文件。 – drew010 2012-08-13 05:20:54
嗯。真正。我想過使用'suPHP',但爲此我必須在我的託管環境上做很多更改。你有什麼建議嗎? – dmmd 2012-08-13 05:23:31
甚至與PHP文件被它的主人跑我仍然需要運行的命令爲其他用戶的選項,這裏的主要思想是在別人的主文件夾中創建文件/文件夾(的public_html等)。 – dmmd 2012-08-13 05:28:58