題 如何為linux中的所有用戶提供文件夾的寫訪問權限?


我剛剛在Ubuntu上安裝了apache2,並註意到/ var / www文件夾受到保護。我可以 sudo 一切,但我寧願給它寫訪問權限。

我怎樣才能做到這一點?

我試過了 sudo chmod 7777 /var/www 但它不起作用。


168
2017-08-06 23:30


起源


這是一個可公開訪問的服務器,還是沒有直接連接到互聯網?如果前者考慮安全決策很重要 - 互聯網上的服務器經常受到攻擊(查看/ var / log / messages或等效內容)。 - kwutchak
這只是我的筆記本電腦,無法從互聯網訪問。 - Carson Myers


答案:


與能夠寫入的多個用戶進行最佳共享 /var/www,應該分配一個共同的組。例如,Ubuntu和Debian上的Web內容的默認組是 www-data。確保所有需要寫入權限的用戶 /var/www 在這個群體中。

sudo usermod -a -G www-data <some_user>

然後在/ var / www上設置正確的權限。

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

此外,您應該使目錄及其下面的所有目錄“設置GID”,以便全部  在...下創建的文件和目錄 /var/www 歸所有者所有 www-data 組。

sudo find /var/www -type d -exec chmod 2775 {} \;    

查找所有文件 /var/www 並為所有者和組添加讀寫權限:

sudo find /var/www -type f -exec chmod ug+rw {} \;

如果您正在為自己的帳戶編輯權限,則可能必須註銷並重新登錄才能進行更改。


295
2017-08-07 00:15



這很乏味......我不能讓用戶訪問它,好像它是任何其他文件夾? - Carson Myers
那 是 你如何授予它訪問權限。複製和粘貼命令比嘗試瀏覽GUI文件管理器的對話框以執行相同操作更快。如果你閱讀chmod和chgrp的手冊頁,至少可以幫助你(“man chmod”)。 - jtimberman
也許我第一次看到這些命令時並不理解這些命令,你的編輯使它更加清晰。 - Carson Myers
+1為guid強制apache權限。適用於02的umask。如果需要寫訪問權限,那就像chmod g + w dir / - LiraNuna
為什麼是您的組權限命令 sudo chmod -R g+w 並不是 g+rw 要么 g+rwX? - detly


有一種更簡單的方法,嘗試執行此命令。

sudo chmod -R 757 /var/www

基本上, chmod 命令改變權限和 -R 切換會影響所有用戶。然後它只是給出正確的使用權限。


25
2017-09-22 10:31



你能否對命令對OP的作用有所了解? - n0pe
-1因缺乏解釋。除了, chmod $permissions -R $file 無效...... - Blacklight Shining
它是選項然後權限而不是相反 - Moataz Elmasry
sudo chmod -R 757 /var/www - Bwyss
請有經驗的人建議編輯,並簡要說明一下。 - Adi Prasetyo


讀+寫:

sudo chmod -R a+rw /var/www

讀+寫+執行:

sudo chmod -R a+rwx /var/www

23
2017-08-09 19:22





您還可以復制jtimberman建議使用的內容 訪問控制列表。該 setfacl的 命令接受-s替換現有ACL或-m以修改它; -R使目錄ACL遞歸;和-d使指定的設置成為默認設置,如果您預計即將到來的用戶帳戶,這將非常有用。

這些只是使用chmod設置用戶,組,其他和掩碼的權限:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

這可能是你為指定用戶或他/她的團隊做的事情:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

當然,優勢在於您可以指定任何特定用戶,多個用戶等,而無需修改您的組設置。與chmod不同,如果您希望某些群組可以訪問一個目錄而其他群組只能訪問另一個目錄,那麼實際上可以使用setfacl。最後,要查看目錄的ACL,請運行 getfacl的說明書

getfacl DIRECTORY

您可以指定-R以查看子目錄的ACL,或指定-d以查看默認值。


7
2017-08-08 12:29



這是最好的答案!希望我能不止一次投票。 - Tim Duncklee


快速簡單的答案  -

一個。添加(-一個)您的用戶(用戶名)到小組(-Gwww數據

sudo usermod -a -G www-data user_name

灣給集團(G) 相同 (=)作為擁有用戶的權限(ü)的 在/ var / WWW 遞歸(-R)。

sudo chmod -R g=u /var/www

說明:Debian / Ubuntu上的Apache 2設置用戶和組 www數據 作為。的所有者 在/ var / WWW。用戶的默認權限是“查看和修改內容”,但該組只能“查看內容”。因此,將自己添加到www-data組並賦予其與wwww-data用戶相同的權限,是一種快速簡便的開發方法。我為所有本地主機(PC /筆記本電腦)Web開發環境執行此操作。


2
2018-02-20 02:20





我經常使用

chmod g+w /folder/ -R

它幾乎是自我解釋的。

它增加了每個人 g魯莽的 /folder/ 具有 w儀式訪問(+w), -R 用於子文件夾的遞歸。


1
2018-03-19 21:13





你能嘗試嗎? chmod 0777 /var/www ?

警告:如果您讓每個人都訪問此文件夾,則表示黑客可以訪問此文件夾,如果他們可以訪問您的系統。這就是為什麼最好創建一組允許的用戶,並為該組提供寫訪問權限。


-3
2017-08-07 02:01



那麼為什麼要提供這個解決方案,然後立即抹黑呢? -1投票 - Tisch


首先輸入特定的文件夾路徑,然後使用此命令...

chmod -R 777 foldername
chown username:username foldername 

-4
2017-09-30 09:58



哇,那太糟糕了!你沒有給777帶-R - 特別是如果提出問題的人是新手並且不了解風險。 - recluze
真的夠@recluze。 - vgoff