2011-06-17 127 views
2

希望你好。我在Fedora上安裝了Xammp,並將opp/lampp/htdoc的所有者更改爲root。爲什麼我這樣做是因爲每當有人通過共享創建新文件夾時,他們沒有權限動態創建文件夾或文件或寫入圖像。然後我運行命令新創建的文件夾權限問題

chmod -R 777 /opt/lampp/htdocs 

但是,當系統重新啓動,然後我再次需要運行此命令。所以避免再次,然後再次運行此命令我改變了所有人對「選擇/ LAMPP/htdocs目錄」,並運行

chmod -R 777 /opt/lampp/htdocs 

現在,每當服務器重新啓動,分配權限,不需要一次又一次地設置。這已解決。

我有一個問題,舊的目錄可以用來寫東西。但是,如果任何網絡用戶在htdocs下創建新目錄,則需要更改該新目錄的權限。

  • 先前創建的,並且可以使用這個目錄來運行腳本來創建文件

    drwxrwxrwx 2 root root  4096 2011-06-15 14:09 aaa 
    
  • 新創建的,不能被用於運行一個腳本來創建圖像或寫什麼

    drwxr-xr-x 2 root root  4096 2011-06-17 15:17 aaaa 
    

drwxr-xr-x這個人是真的討厭我在htdocs每個新創建的文件夾:(

只是爲了讓你知道我的htdocs用戶和權限是:

drwxrwxrwx 101 root root 4096 2011-06-17 15:17 htdocs 

爲什麼會這樣呢?任何人都可以幫我解決這個問題嗎?我急切地等待快速回應。

回答

3

首先,您應該調查一下您真正需要的權限 - 將所有內容都改爲777是一種安全風險,因爲它允許任何用戶在您的web根目錄中寫入內容。

但是,爲了解決用戶創建新文件夾時默認權限的實際問題,您需要調整確定此類事項的默認「umask」。

這個問題有將其改變爲Apache用戶的一些信息(如果「網絡用戶」是通過httpd進程創建新的文件和目錄的用戶):

Setting the umask of the Apache user

如果您需要針對其他用戶或流程進行調整,解決方案將類似。

祝你好運!

編輯

既然你在Fedora上,試試這個:(從問題我在上面的鏈接)

 
[root ~]$ echo "umask 002" >> /etc/sysconfig/httpd 
[root ~]$ service httpd restart 

的第一個命令是行添加到在/ etc/SYSCONFIG/httpd,它是一個永久的配置文件,第二個命令將使其處於活動狀態。

+0

此外,我使用了被設置爲默認「0022」的「umask」,並在運行「umask 002」時進行了更改,並且使用「umask」進行了檢查。它是「0002」,但當系統將重新啓動,然後umask值會自動重新設置:(其次我需要我的網絡開發人員在htdocs中工作,我需要爲所有人設置此權限,就像他們創建任何新文件夾,然後他們必須有充分的權利做任何事情在他們的文件夾。關於安全性,一切都照顧,我不會解決,但只有解決這個問題。提前致謝。 – Umer 2011-06-17 12:55:50

+0

從您提供的URL的另一件事是答案「Apache繼承它的umask從它的父進程(即啓動Apache的進程);這通常應該是/etc/init.d腳本,因此在該腳本中放置一個umask命令。「您能否詳細說明一下如何設置它? – Umer 2011-06-17 12:59:54

0

試試:

#umask 000 

有一個好時機!

3

您正在從錯誤的方面處理問題。恢復你的apache配置,使用apache.apache作爲默認用戶/組,並設置你的samba服務器在有人寫入你的文檔根目錄時使用這些憑據。

如果您使用的是nfs或其他posix兼容文件系統,請使用chmod g + s來保留您的apache服務器可讀的所有文件。