2012-05-02 30 views
2

我在自己的網絡服務器上工作,並且爲維護我的網站寫了一個perl腳本。從瀏覽器調用此腳本將顯示用於維護的用戶界面。爲了能夠從我的瀏覽器啓動這個腳本,我必須輸入一個用戶名和一個密碼,除了我以外,沒有人可以運行這個腳本。如何啓用cgi-perl腳本來執行root權限的操作?

我想這個腳本重命名服務器上的一些文件,當我點擊相應的按鈕。從perl腳本中我調用shell命令`mv oldFilename newFilename`,但沒有任何反應。 Apache的錯誤日誌顯示如下消息:

[TIMESTRING] [錯誤] [客戶NNNN] MV:無法移動oldFilenamenewFilename:權限被拒絕,引用者:引用

文件名的所有者是root,權限設置爲0644(每個人都可以讀取,只有root可以寫入)

這個問題的最佳解決方案是什麼?有沒有比將文件權限更改爲0666更好的方法?我想避免更改權限。我會提供一個解決方案,讓perl腳本在shell中聲明如下:「親愛的shell,這裏是root的密碼。現在請重命名文件X到Y!

回答

4

這不是確切的問題Unix團隊是否打算解決?將文件權限設置爲0664,將目錄權限設置爲0775,然後將文件和目錄分配給該網絡服務器用戶所屬的組。

+2

你不一定希望他將系統中的所有目錄改爲0775,將所有文件改爲0664,對不對? –

+0

它工作!謝謝! –

0

我使用html頁面和Java腳本維護Perl網站。所有的程序文件都受到root權限的保護。

即使您通過網站上的用戶名和密碼限制對此程序的訪問,那麼root應該擁有程序chown root:root <full-path-to-your-program-name>,程序文件應該受到保護chmod 755 <full-path-to-your-program-name>

相關問題