題 無法在ubuntu上的htdocs中創建任何文件夾


如何設置權限,我可以嗎? “創建新文件夾”選項顯示為灰色。 我試過這個:sudo chmod -rw / opt / lampp / htdocs

但它仍然無效。當我添加sudo chmod -rw 755 / opt / lampp / htdocs時, 它說:“755”沒有這樣的文件或目錄


4
2018-04-10 10:09


起源


你試過“chmod -R 777 / opt / lampp / htdocs” - HTDutchy


答案:


您錯誤地了解chmod和unix文件權限的運行方式。

您需要配置/ opt / lampp / htdocs目錄,以便您登錄的用戶具有寫入權限。您還需要確保LAMPP使用的任何Web服務器都可以讀取您在那裡寫的內容(不幸的是,我不熟悉LAMP。)

首先,您需要了解誰擁有/ opt / lampp / htdocs:

$ ls -ld /opt/lampp/htdocs

應該返回類似的東西:

drwxr-xr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs

第一位(dwrxr-xr-x)是文件權限。 “lampp”是目錄的所有者,“www”是目錄的組所有者。你需要注意這個。

首先讓我們對小組進行排序。如果該組是除“root”之外的任何內容,那麼一切都很好,您可以跳過本節:

如果它是“根”,它將需要改變為更合理的東西。讓我們為它創建一個新組:

$ sudo groupadd www

然後更改目錄上的組:

$ sudo chgrp -R www /opt/lampp/htdocs

現在,您需要將Web服務器作為組www運行。如果Web服務器是Apache,那麼您應該檢查/etc/apache/httpd.conf文件並相應地編輯“組”設置。我不知道其他Web服務器的設置。

現在,如果您不需要將組從root切換到其他內容,則可以跳到此處。

我們現在需要解決目錄的權限。我們希望使用一些非常特殊的權限,稱為“setgid”位。

$ sudo chmod 2775 /opt/lampp/htdocs
$ ls -ld /opt/lampp/htdocs
drwxrwsr-x 4 lampp www 4096 2011-03-22 12:43 /opt/lampp/htdocs

您看到權限現在已經有所改變。我們來解釋一下。

  • 第一個字母是文件類型。在這種情況下,“d”用於目錄。
  • 接下來的三個,“rwx”是所有者(lampp)對directort的權限。 r = read,w = write和x =查看目錄內容。
  • 接下來的三個“rws”是針對群組所有者(www),但是你注意到這個案例中的x實際上是一個s - 我們馬上就會出現這個問題。
  • 最後三個“r-x”適用於其他所有人。這是讀取,並查看目錄的內容。沒有寫作。

組權限中的“s”稱為“setgid”位。這是一個特殊權限,它會導致在目錄中創建的任何文件從目錄本身繼承組所有者。因此,如果組“用戶”中的用戶“fred”在其中創建文件,則它將由組“www”中的“fred”擁有。這對於多個人都讀取和寫入相同文件的共享區域非常有用。

但是,就目前而言,你仍然沒有能力寫入該領域。為什麼?因為你不在“www”組。讓我們現在糾正:

$ sudo usermod -aG www blub

將“www”替換為您在開頭附近記下的/ opt / lampp / htdocs目錄的組所有者。

您需要再次註銷才能使此更改生效 - 您的組成員身份將在登錄時讀取。

完成後你應該突然發現你現在可以在/ opt / lampp / htdocs中神奇地寫文件。

如果系統上有其他用戶要允許其寫入,請將其添加到www組中 usermod -aD www <username> 命令。


15
2018-04-10 10:28



謝謝你:D。這非常有效。 (雖然它說“沒有人”作為擁有者,但這很奇怪?)drwxrwsr-x 4 nobody www 4096 2009-08-27 10:36 / opt / lampp / htdocs - Blub
“nobody”只是另一個用戶,儘管是一個保留的用戶。沒有人應該擁有最低限度的權限。您可能會發現“nobody”的UID為65535或類似的東西。 - Majenko
優秀的答案和步行,節省了我的一天 - 謝謝! - andig
@Majenko check the /etc/apache/httpd.conf file and edit the "Group" setting accordingly....我無法編輯此文件,因為我沒有權限在該目錄中寫入!同樣的問題.. - khaverim
@Majenko這個簡單的終端命令是什麼修復它給我: cd /opt/lampp 然後 sudo chmod 777 -R /opt/lampp/htdocs - khaverim


這個簡單的終端命令給了我完整的權限 htdocs 我能夠開始研究PHP項目

sudo chmod 777 -R /opt/lampp/htdocs

在回應穆罕默德的評論時,最好使用 sudo chmod 755 -R /opt/lampp/htdocs


2
2017-08-31 03:03



請避免使用chmod 777 for htdocs,請看這里為什麼.. askubuntu.com/a/20110/267949 - Mohammed Sufian


你使用EITHER + rw或octals, 不是都。

您要做的是從名為755的目錄以及/ opt / lampp / htdocs中刪除讀寫權限。

在任何情況下,您都不應該使用xampp - 您可以獲得更新的燈泡堆本地安裝 - 您可以使用tasksel安裝它。


1
2018-04-10 10:23



我以為我會使用xampp,因為我從Windows上知道這一點,谷歌搜索的其他人建議它更加用戶友好 - Blub
實際上,沒有。使用tasksel和phpmyadmin安裝一個燈堆,你有大部分xampp的功能,沒有Windows版本的電子郵件服務器。它還有一些安全調整。除了需要安裝兩個命令之外,它只是這麼容易 - 我直接下載並提取內容到/ var / www,將文件chown到www-data,我很高興去。 - Journeyman Geek♦
“將文件chown到www-data”?那是什麼意思? - Blub
chown - 將所有權更改為特定用戶 - 在本例中為www-data,這比將權限更改為讀/寫等更安全。 - Journeyman Geek♦