Frage Wie kann ich einen Schreibzugriff auf einen Ordner für alle Benutzer in Linux geben?


Ich habe gerade apache2 auf Ubuntu installiert und festgestellt, dass der / var / www-Ordner geschützt ist. Ich kann nur sudo alles aber ich würde es lieber einfach schreiben lassen.

Wie kann ich das machen?

Ich habe es versucht sudo chmod 7777 /var/www aber es hat nicht funktioniert.


162
2017-08-06 23:30


Ursprung


Ist dies ein öffentlich zugänglicher Server oder hat er keine direkte Verbindung zum Internet? Wenn Ersteres wichtig ist, dass Sie Sicherheitsentscheidungen in Betracht ziehen, werden Server im Internet ständig angegriffen (schauen Sie in Ihre / var / log / messages oder Ähnliches). - kwutchak
Das ist nur mein Laptop, es ist nicht aus dem Internet zugänglich. - Carson Myers


Antworten:


Am besten mit mehreren Benutzern teilen, die in der Lage sein sollten, zu schreiben /var/wwwEs sollte eine gemeinsame Gruppe zugewiesen werden. Zum Beispiel ist die Standardgruppe für Webinhalte auf Ubuntu und Debian www-data. Stellen Sie sicher, dass alle Benutzer Schreibzugriff haben /var/www sind in dieser Gruppe.

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

Legen Sie dann die richtigen Berechtigungen für / var / www fest.

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

Außerdem sollten Sie das Verzeichnis und alle darunter liegenden Verzeichnisse "GID" setzen, damit alle Neu Dateien und Verzeichnisse erstellt unter /var/www sind im Besitz der www-data Gruppe.

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

Finde alle Dateien in /var/www und fügen Lese- und Schreibberechtigung für Besitzer und Gruppe hinzu:

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

Möglicherweise müssen Sie sich abmelden und erneut anmelden, um Änderungen vornehmen zu können, wenn Sie die Berechtigung für Ihr eigenes Konto bearbeiten.


285
2017-08-07 00:15



das ist ziemlich mühsam ... Ich kann den Benutzern nicht einfach Zugriff darauf geben, als wäre es irgendein anderer Ordner? - Carson Myers
Das ist wie du Zugang dazu gibst. Es ist schneller, die Befehle zu kopieren und einzufügen, als durch die Dialoge eines GUI-Dateimanagers zu navigieren, um dasselbe zu tun. Langfristig hilft es Ihnen, wenn Sie zumindest die Manpages für chmod und chgrp lesen ("man chmod"). - jtimberman
vielleicht habe ich die Befehle nicht verstanden, als ich sie das erste Mal gelesen habe, und Ihre Bearbeitung macht es viel klarer. - Carson Myers
+1 für GUID, um Apache-Berechtigungen zu erzwingen. funktioniert gut mit umask von 027. Wenn etwas Schreibzugriff benötigt, ist es so einfach wie chmod g + w dir / - LiraNuna
Warum ist Ihr Gruppenberechtigungsbefehl? sudo chmod -R g+w und nicht g+rw oder g+rwX? - detly


Es gibt eine einfachere Möglichkeit, dies zu tun, versuchen Sie, diesen Befehl auszuführen.

sudo chmod -R 757 /var/www

Im Wesentlichen die chmod Befehl ändert Berechtigungen und die -R switch betrifft alle Benutzer. Dann gibt es einfach die richtigen Berechtigungen zu verwenden.


25
2017-09-22 10:31



Könnten Sie einen Einblick geben, was der Befehl für das OP leistet? - n0pe
-1 wegen fehlender Erklärung. Außerdem, chmod $permissions -R $file ist nicht gültig ... - Blacklight Shining
es ist Optionen, dann Berechtigungen nicht umgekehrt - Moataz Elmasry
sudo chmod -R 757 /var/www - Bwyss
bitte jemand erfahren, schlagen Sie eine Bearbeitung mit kurzer Erklärung dazu vor. - Adi Prasetyo


Lesen + Schreiben:

sudo chmod -R a+rw /var/www

Lesen + Schreiben + Ausführen:

sudo chmod -R a+rwx /var/www

23
2017-08-09 19:22





Sie können auch replizieren, was jtimberman vorgeschlagen hat Zugriffskontrolllisten. Das Satzfacl Der Befehl akzeptiert -s, um eine vorhandene ACL zu ersetzen oder -m, um sie zu ändern. -R, um Verzeichnis-ACLs rekursiv zu machen; und -d, um die angegebenen Einstellungen als Standard festzulegen. Dies ist nützlich, wenn Sie auf bevorstehende Benutzerkonten warten.

Diese setzen einfach die Berechtigungen wie für den Benutzer, die Gruppe, andere und Masken mit chmod:

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

Und das könnte sein, wie Sie es für einen bestimmten Benutzer oder seine Gruppe tun würden:

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

Die Stärke besteht natürlich darin, dass Sie einen bestimmten Benutzer, mehrere Benutzer usw. festlegen können, ohne dass Sie Ihre Gruppeneinstellungen ändern müssen. Und im Gegensatz zu chmod, wenn Sie möchten, dass einige Groupies Zugriff auf ein Verzeichnis haben und andere Groupies nur Zugriff auf ein anderes haben, ist dies tatsächlich mit setfacl möglich. Um die ACLs eines Verzeichnisses anzuzeigen, führen Sie die Ausführung aus getfacl:

getfacl DIRECTORY

Und Sie können -R angeben, um die ACLs für Unterverzeichnisse anzuzeigen, oder -d, um die Standardwerte anzuzeigen.


5
2017-08-08 12:29



Das ist die beste Antwort! Ich wünschte, ich könnte es mehr als einmal abstimmen. - Tim Duncklee


Die schnelle und einfache Antwort -

ein. Hinzufügen (-ein) Ihr Benutzer (Nutzername) zur Gruppe (-G) www-Daten.

sudo usermod -a -G www-data user_name

b. Gib der Gruppe (G) das Gleiche (=) Berechtigungen als Eigentümer (u) von / var / www Rekursiv (-R).

sudo chmod -R g=u /var/www

Erläuterung: Apache 2 unter Debian / Ubuntu legt den Benutzer und die Gruppe fest www-Daten als der Besitzer von / var / www. Die Standardberechtigungen für den Benutzer lauten "Inhalt anzeigen und ändern", die Gruppe kann jedoch nur "Inhalt anzeigen". Wenn Sie sich also der www-data-Gruppe hinzufügen und ihr die gleichen Berechtigungen wie dem www-data-Benutzer erteilen, ist dies eine schnelle und einfache Möglichkeit, sich weiterzuentwickeln. Ich mache das für all meine lokalen Webentwicklungsumgebungen (PC / Laptop).


2
2018-02-20 02:20





Ich benutze es typisch

chmod g+w /folder/ -R

Es ist fast selbsterklärend.

Es fügt jedermann in die gGruppe von /folder/ haben wRitus Zugang (+w), -R ist für Rekursion für Unterordner.


1
2018-03-19 21:13





Kannst du es einfach versuchen? chmod 0777 /var/www ?

Ein Wort der Warnung: Wenn Sie alle auf diesen Ordner zugreifen lassen, können die Hacker auf diesen Ordner zugreifen, wenn sie Zugriff auf Ihr System erhalten. Deshalb ist es besser, eine Gruppe zulässiger Benutzer zu erstellen und dieser Gruppe Schreibzugriff zu gewähren.


-3
2017-08-07 02:01



also warum bieten Sie das als Lösung an und diskreditieren Sie es sofort? -1 Stimme - Tisch


Zuerst geben Sie den Pfad des bestimmten Ordners ein und verwenden dann diesen Befehl ...

chmod -R 777 foldername
chown username:username foldername 

-4
2017-09-30 09:58



Wow, das ist schlecht! Sie geben keine 777 mit -R - vor allem, wenn die Person, die die Frage stellt, ein Neuling ist und die Risiken nicht versteht. - recluze
Echt genug @recluze. - vgoff