2014-01-06 48 views
0

在CentOS上,我想給apache用戶授權,在一個家庭目錄上「ant release」,它不擁有我該怎麼做?我現在用的ant release是由於Android SDK的一部分 - 我有一個目錄/home/myuser/android_project/ant relase運行正常,從那裏,但我想給apache它需要運行它,所以我可以運行的權限爲讓PHP安全地編譯螞蟻釋放

<?php shell_exec('/home/myuser/android_project/ant release') ?>. 

的疑難雜症

也有一個問題,因爲我籤ant release我想有PHP可以神奇地「牌」 ant release在文件或許處理的密碼。

現在。

注意:到Mr Tinker:抓住馬 - 我知道這可能會落在論壇主題警察的犯規,但在我認爲這是一個unix issue。即我知道PHP如何執行shell_exec我不需要編程幫助。我知道如何手動運行ant release,所以我不需要安裝幫助:我想在linux(CentOS服務器)中將這兩個完全不同的手冊「東西」縫合在一起,所以我相信100%這是一個unix問題。

+0

你認爲這背後的理由不是偏見是錯誤的。如果您在Windows系統上運行代碼,則會出現同樣的問題。這是一個編程問題。 – jordanm

+0

不應該被移動,因爲它是建築相關的:好悲傷 - 並作爲旁邊否,這不會出現在窗戶上! Windows沒有這樣的操作權限! – user26676

回答

0

就像你已經表明,您需要授予apache用戶執行/home/myuser/android_project/ant文件的權限。

TL;博士:運行以下命令(被警告,它可能不是世界上最安全的東西):

chmod 777 /home/myuser/android_project/ant 

如果你有興趣,爲什麼這可能解決您的問題,繼續閱讀下面。

首先,您需要獲取更多信息。 運行以下命令:

ls -l /home/myuser/android_project/ant 

ls -l命令會給你的讀,寫和指定的文件執行權限與所有權信息。第一列包含權限信息。第3列表示擁有用戶,第4列表示擁有組。

例如:

$ ls -l /etc/passwd 
-rw-r--r--. 1 root root 2177 Aug 26 21:23 /etc/passwd 
     ^^^ 
     |----------- All Users & Groups 
    ^^^ 
    |-------------- Specified Group Owner 
^^^ 
|------------------ Specified User Owner 

這可以被解釋爲用戶根和根組擁有該/etc/passwd文件。 權限被讀作3 rwx個字符的組。第一組爲擁有用戶,第二組爲擁有組織,第三組爲系統中的其他人。本例中的權限意味着root用戶可以讀取和寫入文件,根組可以讀取,其他人都可以讀取。現在

,每個組的權限可以表示爲一個八進制數字:

--- == 0 
--x == 1 
-w- == 2 
-wx == 3 
r-- == 4 
r-x == 5 
rw- == 6 
rwx == 7 

你現在有足夠的信息來理解爲什麼上面的命令chmod 777工作。基本上,您將授予系統上的每個人讀取,寫入和執行該ant文件的權限。

理想情況下,您只會提供允許apache執行該文件所需的最低權限,我將其作爲練習留給讀者。

+2

我認爲你誤解了這個問題,你不應該推薦777燙髮。 – jordanm

+0

我認爲*你是*誤解了這個問題,我明確地放了一個有關chmod 777的聲明。 – holocron

+0

我真的不想要777它我想chown並且屬於正確的成員組 – user26676