Wie mache ich ein Verzeichnis dauerhaft beschreibbar?

27

Ich verwende den LAMP-Stack für die Entwicklung und habe ein Problem damit, / var / www dauerhaft beschreibbar zu machen. Ich benutze diesen Befehl:

sudo chmod -R a+rwX /var/www

Dies funktioniert, aber nachdem eine Web-App platziert und über einen Browser darauf zugegriffen wurde, wird der Fehler "Berechtigung verweigert" angezeigt. In diesem Fall muss ich den Befehl erneut ausführen.

Wie kann ich das Verzeichnis dauerhaft beschreibbar machen, ohne den Befehl erneut ausführen zu müssen?

Vielen Dank!

Kartoffel
quelle
1
Erstellen Sie einen Unterordner in /var/wwwund ändern Sie die Berechtigung für dieses Verzeichnis. Das sollte das Problem beheben
Anam Ahmed
5
Eigentlich sollten Sie niemals Web-Root beschreibbar machen. Siehe Aus Sicherheitsgründen, warum sollte / var / www nicht chmod 777 haben?
Goran Miskovic
Dies sind einige gute Kommentare oben ... Aus Sicherheitsgründen sollten Sie weiterhin die Berechtigung für /var/wwwdie Standardeinstellung rwxr-xr-x haben und wahrscheinlich die erforderlichen Dateien in ein Unterverzeichnis verschieben /var/wwwund die * html-Dateien entsprechend ändern für die Änderungen, die Sie am Dokumentenstamm vorgenommen haben.
präziser

Antworten:

39

Numerische Berechtigungen können Ihr Problem lösen.

sudo chmod 775 'your directory'

wenn Sie wissen wollen, warum nur 775 hier Ihre Antwort ist

400 read by owner
040 read by group
004 read by anybody
200 write by owner
020 write by group
002 write by anybody
100 execute by owner
010 execute by group
001 execute by anybody

 400
+040
+004
+200
+020
+100
+010
+001
=775

Es wird jede Erlaubnis geben, außer von irgendjemandem zu schreiben.

Diprute
quelle
9

Ich hatte damals das gleiche Problem

sudo chmod 777 directory

Ich habe es gelöst.

Das macht das Verzeichnis für jedermann beschreibbar, lesbar und ausführbar. Es ist also egal, welcher Benutzer oder welche Gruppe es besaß oder Lampp benutzte.

Dies wird jedoch nicht empfohlen, wenn Ihr Computer öffentlich zugänglich ist.

M Cornel
quelle
8

Normalerweise sollte der von Ihnen verwendete Befehl die Berechtigungen dauerhaft ändern.

Versuchen Sie sudo chmod -R 775 /var/www/(was im Grunde das gleiche ist). Wenn dies nicht funktioniert, müssen Sie möglicherweise den Eigentümer [und möglicherweise die Gruppe] des Verzeichnisses über ändern sudo chown <user>[:<group>] /var/www/.

Möglicherweise wird der Fehler "Berechtigung verweigert" auch durch unzureichende Zugriffsrechte in Ihrer Datenbank oder anderswo verursacht.

David
quelle
Aber wie @schkovich schon erwähnte solltest du den Web-Root-Ordner nicht beschreibbar machen.
David
13
+ Rinzwind Ich habe 777 benutzt und warte geduldig auf Ihren Besuch.
Marcel
es hat bei mir funktioniert, wenn ich es ohne Schrägstriche verwende, zB sudo chmod -R 775 my_folder
Yarh
@Marcel ist jetzt tot, @ Rinzwind beendet ihn
Dheeraj
2
@Marcel Woher wissen wir, dass es das wahre Du ist? Was, wenn @Rinzwind Marcels Gesicht zerrissen hat und es getragen hat?
Dheeraj