Unter Ubuntu kann in htdocs kein Ordner erstellt werden

Unter Ubuntu kann in htdocs kein Ordner erstellt werden

Wie stelle ich die Berechtigung ein, damit ich das kann? Die Option „Neuen Ordner erstellen“ ist ausgegraut.

Ich habe Folgendes versucht:

sudo chmod -rw /opt/lampp/htdocs

Aber es funktioniert immer noch nicht. Wenn ich hinzufüge:

sudo chmod -rw 755 /opt/lampp/htdocs, 

Es sagt:"755" no such file or directory

Antwort1

Sie verstehen die Funktionsweise von chmod und den Unix-Dateiberechtigungen falsch.

Sie müssen das Verzeichnis /opt/lampp/htdocs so konfigurieren, dass der Benutzer, als der Sie angemeldet sind, Schreibberechtigung hat. Sie müssen außerdem sicherstellen, dass das, was Sie dort schreiben, von dem von LAMPP verwendeten Webserver gelesen werden kann (mit LAMP bin ich leider nicht vertraut).

Zuerst müssen Sie nachsehen, wem /opt/lampp/htdocs gehört:

$ ls -ld /opt/lampp/htdocs

Sollte ungefähr Folgendes zurückgeben:

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

Das erste Bit (dwrxr-xr-x) sind die Dateiberechtigungen. „lampp“ ist der Eigentümer des Verzeichnisses und „www“ ist der Gruppeneigentümer des Verzeichnisses. Das müssen Sie sich merken.

Lassen Sie uns zunächst die Gruppe sortieren. Wenn die Gruppe irgendetwas anderes als „root“ ist, ist alles in Ordnung und Sie können diesen Abschnitt überspringen:

Wenn es „root“ ist, muss es in etwas Sinnvolleres geändert werden. Lassen Sie uns eine neue Gruppe erstellen, zu der es gehört:

$ sudo groupadd www

Ändern Sie dann die Gruppe im Verzeichnis:

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

Jetzt müssen Sie den Webserver als Gruppe www laufen lassen. Wenn der Webserver Apache ist, sollten Sie die Datei /etc/apache/httpd.conf überprüfen und die Einstellung „Gruppe“ entsprechend bearbeiten. Ich kenne die Einstellung für andere Webserver nicht.

Hierhin würden Sie nun springen, wenn Sie die Gruppe nicht von „Root“ auf etwas anderes umstellen müssten.

Wir müssen uns nun um die Berechtigungen für das Verzeichnis kümmern. Wir möchten einige sehr spezielle Berechtigungen verwenden, das sogenannte „setgid“-Bit.

$ 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

Sie sehen, dass sich die Berechtigungen nun etwas geändert haben. Lassen Sie uns diese erklären.

  • Der erste Buchstabe gibt den Dateityp an. In diesem Fall steht „d“ für „Directory“ (Verzeichnis).
  • Die nächsten drei, „rwx“, sind die Berechtigungen, die der Eigentümer (lampp) für das Verzeichnis hat. r = lesen, w = schreiben und x = Verzeichnisinhalt anzeigen.
  • Die nächsten drei „rws“ stehen für den Gruppenbesitzer (www), aber Sie bemerken, dass das x in diesem Fall eigentlich ein s ist – darauf kommen wir gleich zurück.
  • Die letzten drei, „rx“, sind für alle anderen. Damit ist Lesen gemeint, also das Anzeigen des Verzeichnisinhalts. Kein Schreiben.

Das „s“ in den Gruppenberechtigungen wird als „setgid“-Bit bezeichnet. Dies ist eine spezielle Berechtigung, die dazu führt, dass alle im Verzeichnis erstellten Dateien den Gruppeneigentümer vom Verzeichnis selbst erben. Wenn also der Benutzer „fred“ in der Gruppe „users“ dort eine Datei erstellt, gehört diese „fred“ in der Gruppe „www“. Dies ist sehr nützlich für einen gemeinsam genutzten Bereich, in dem mehrere Personen dieselben Dateien lesen und schreiben.

Aber so wie es aussieht, können Sie immer noch nicht in diesen Bereich schreiben. Warum? Weil Sie nicht zur "www"-Gruppe gehören. Lassen Sie uns das jetzt ändern:

$ sudo usermod -aG www blub

Ersetzen Sie „www“ durch den Gruppenbesitzer des Verzeichnisses /opt/lampp/htdocs, das Sie am Anfang notiert haben.

Sie müssen sich ab- und erneut anmelden, damit diese Änderung wirksam wird – Ihre Gruppenmitgliedschaften werden beim Anmelden gelesen.

Sobald Sie dies getan haben, sollten Sie plötzlich feststellen, dass Sie nun wie durch Zauberhand Dateien in /opt/lampp/htdocs schreiben können.

Wenn Sie noch weitere Benutzer auf dem System haben und diesen das Schreiben erlauben möchten, fügen Sie diese einfach mit dem usermod -aD www <username>Befehl zur www-Gruppe hinzu.

Antwort2

Dieser einfache Terminalbefehl gab mir die volle Berechtigung htdocsund ich konnte mit der Arbeit an PHP-Projekten beginnen

sudo chmod 777 -R /opt/lampp/htdocs

Als Antwort auf Muhammeds Kommentar wäre es besser,sudo chmod 755 -R /opt/lampp/htdocs

Antwort3

Sie verwenden ENTWEDER +rw ODER die Oktale, nicht beide.

Sie versuchen, Lese- und Schreibrechte für ein Verzeichnis namens 755 sowie für /opt/lampp/htdocs zu entfernen.

Auf jeden Fall sollten Sie nicht xampp verwenden – Sie können eine aktuellere, native Installation eines Lamp-Stacks erhalten – Sie können ihn mit tasksel installieren.

Antwort4

Um den Gruppenbesitz des Verzeichnisses /opt/lampp/htdocsund seines Inhalts in die Gruppe zu ändern jade.

sudo chgrp -R jade /opt/lampp/htdocs

Wenn Sie dann die Berechtigungen ändern möchten (z. B. der Gruppe jadeSchreibzugriff erteilen), verwenden Sie normalerweise den Befehl chmod. Beispiel:

sudo chmod -R g+w /opt/lampp/htdocs

verwandte Informationen