2012-08-13 43 views
0

我正在創建一個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文件夾/ p​​ublic_html中創建文件),所以它似乎不是一個選項。

+0

起初以爲可能是一個壞主意。所有用戶的網站是否也以Apache的身份運行?如果是這樣,考慮使用可以根據腳本的所有者切換PHP用戶的東西。我認爲這會繞過所有安全性,因爲任何人都可以編寫PHP腳本來閱讀或編輯其他用戶的文件。 – drew010 2012-08-13 05:20:54

+0

嗯。真正。我想過使用'suPHP',但爲此我必須在我的託管環境上做很多更改。你有什麼建議嗎? – dmmd 2012-08-13 05:23:31

+0

甚至與PHP文件被它的主人跑我仍然需要運行的命令爲其他用戶的選項,這裏的主要思想是在別人的主文件夾中創建文件/文件夾(的public_html等)。 – dmmd 2012-08-13 05:28:58

回答

1

根據我們在評論中的討論,我會建議安裝類似suPHP的東西,以便您的每個用戶腳本都由其實際用戶擁有,而不是Apache。

我想你有這個問題是(也許),因爲你想能夠從Web界面執行其他用戶的網站的管理功能。如果您有像apache這樣的其他用戶可以運行腳本的通用用戶,允許該用戶自動執行sudo權限是一個壞主意,因爲它很容易被利用來獲得未經授權的訪問。

爲了解決這個問題,請確保您將管理功能作爲有權修改其他人文件的特殊管理員用戶運行。還請確保您創建的任何文件都是適當的用戶,以便他們可以讀取/寫入它們。只要沒有其他用戶可以訪問該管理員帳戶或以他們的身份運行PHP腳本,則應該更安全。

如果您從控制檯運行管理功能,那麼它應該更容易,否則只需設置一個suPHP用戶即可從網絡運行主功能併爲該帳戶使用良好憑據。

做這樣的事情,這將是更安全的,應該讓你做你需要在不打開的事情了超過所需的一切。

+0

現在會給出upvote。明天,在我正確測試之後,我會將其標記爲已接受。 – dmmd 2012-08-13 09:16:51

相關問題