Wenn wir die Inhaberschaft von site1 überprüfen, werden wir so etwas finden,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
Dies bedeutet, dass das Verzeichnis dem Benutzer root und der Gruppe root gehört. Während der Benutzer root über Schreibrechte (plus Lese- und Ausführungsrechte) für das Verzeichnis verfügt, hat der Gruppenstamm nur Lese- und Ausführungsrechte.
Wir möchten den Gruppeneigentum in eine andere (neue) Gruppe ändern und Benutzer1 zu dieser bestimmten Gruppe hinzufügen. Wir werden auch dieser bestimmten Gruppe eine schriftliche Erlaubnis erteilen.
Erstelle eine neue Gruppe,
sudo addgroup site1
Fügen Sie der neu erstellten Gruppe user1 hinzu.
sudo adduser user1 site1
Überprüfen Sie, ob Benutzer1 wirklich zu dieser Gruppe gehört.
groups user1
Die Ausgabe sollte so etwas wie eine Liste sein,
user1 : <other-groups> site1
Jetzt können wir den Gruppeneigentum Ihres gewünschten Verzeichnisses ändern.
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
Erteilen Sie diesem neuen Gruppeninhaber eine Schreibberechtigung.
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
Überprüfen Sie, ob alle Änderungen vorhanden sind.
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
Das Verzeichnis gehört jetzt dem Benutzer root, Gruppe site1. Sowohl der Benutzer root als auch die Gruppe site1 haben Schreibrechte (plus Lese- und Ausführungsrechte) für das Verzeichnis. Jeder Benutzer, der zur Gruppe site1 gehört, verfügt über alle Berechtigungen, die dieser Gruppe gewährt wurden.
Melden Sie sich jetzt als Benutzer1 an, wechseln Sie in das Verzeichnis Site1 und versuchen Sie, eine Datei in diesem Verzeichnis zu erstellen.
echo "My User1 Site" > index.html
bash: index.html: Permission denied
Dies ist fehlgeschlagen, da die primäre Gruppe von Benutzer1 höchstwahrscheinlich nicht Standort1 ist. Wechseln Sie zu dieser Gruppe.
newgrp - site1
Versuchen Sie, die Datei neu zu erstellen (achten Sie darauf, dass Sie nach dem Ändern der Gruppe in das Ausgangsverzeichnis von Benutzer1 verschoben wurden). Dies sollte nun funktionieren. Da die erstellten Dateien über eine Leseberechtigung für die ganze Welt verfügen, sollte es für Apache (oder Ihren Webserver) kein Problem geben, auf sie zuzugreifen.
BEARBEITEN
Wie im Kommentar von dan08 erwähnt , müssen Sie der Gruppe site1 auch WWW-Daten hinzufügen.
sudo adduser www-data site1
Bei vielen (nicht allen) Distributionen ist www-data der Benutzer, unter dem der Apache-Webserver ausgeführt wird. Dies bedeutet auch, dass alle von Apache ausgeführten Aktionen (insbesondere PHP-Skripte) standardmäßig mit den Berechtigungen des Benutzers www-data (und auch der Gruppe www-data) ausgeführt werden. WordPress verwendet die Benutzer-WWW-Daten, um Dateien zu schreiben.
Wenn Sie sehen möchten, wie der Apache-Webserver ausgeführt wird, geben Sie den folgenden Befehl ein:
ps aux | grep apache2 | less
Permission denied
Nachricht ist nicht auf die "primäre Gruppe" zurückzuführen, sondern auf den Benutzer, der sich noch nicht in dieser Gruppe befindet (was das Betriebssystem betrifft). Wenn Sie sich abmelden und wieder anmelden, funktioniert es wie erwartet (ohne ausgeführt zu werdennewgrp - site1
).www-data
Gruppenschreibrechten unterscheiden, wenn Siewww-data
diesesite1
trotzdem erweitern müssten?www-data' write permissions? If that is the question,
www-data" keine Gruppe geben, sondern einen Benutzer. Bitte lassen Sie mich wissen, wenn ich Ihre Frage falsch verstanden habe.Erstellen Sie zwei Gruppen:
site1grp
undsite2grp
www-data
Zu beiden Gruppen hinzufügen .Fügen Sie den entsprechenden Gruppen Benutzer1 und Benutzer2 hinzu
Ändern Sie die Berechtigung Ihrer Site-Ordner so, dass der Benutzerbesitzer "www-data" und der Gruppeneigentümer die entsprechende Gruppe ist
Verfügt jetzt
www-data
über die Benutzer- und Gruppenberechtigungen auf beiden Sites und jeder Benutzer verfügt über die Gruppenberechtigungen für die jeweilige Site.quelle
Für diejenigen, die ihren WordPress-Stammordner unter ihrem Home-Ordner haben:
Ubuntu / Apache
Fügen Sie Ihren Benutzer zur www-Datengruppe hinzu:
CREDIT Erteilen von Schreibrechten für die WWW-Datengruppe
Sie möchten
usermod
Ihren Benutzer anrufen . Das wäre also:Angenommen, die
www-data
Gruppe existiertÜberprüfen Sie, ob sich Ihr Benutzer in der
www-data
Gruppe befindet:Sie sollten etwas bekommen wie:
yourUserGroupName ähnelt normalerweise Ihrem Benutzernamen
Ändern Sie rekursiv den Gruppeneigentum des Ordners und behalten Sie den Besitz Ihres Benutzers
Wechseln Sie in IhrWebSiteFolder-Verzeichnis
Ändern Sie die Gruppenvoraussetzungen der Ordner und Unterordner rekursiv, um die Schreibberechtigungen zu aktivieren:
Modus von
/home/yourUserName/yourWebSiteFolder/'
geändert von0755 (rwxr-xr-x)
zu0775 (rwxrwxr-x)
Ändern Sie die Gruppenvoraussetzungen der Dateien und Unterdateien rekursiv, um die Schreibberechtigungen zu aktivieren:
Das Ergebnis sollte ungefähr so aussehen:
Gleichwertig:
Berechtigungen werden wie 664 oder 775 sein.
quelle
Sie müssen eine neue Gruppe für den sogenannten "neuen Benutzer" erstellen und dann die WWW-Daten und den "neuen Benutzer" zu dieser Gruppe hinzufügen:
Dann können Sie den Eigentümer ändern
new_user
und gruppieren innew_group
:Dann müssen Sie auf Gruppenebene Zugriff auf site1 gewähren. www-data kann weiterhin auf die Site zugreifen, da sie zur new_group gehört, während new_user nicht auf site2 zugreifen kann, da er nicht zur www-data-Group gehört, der site2 gehört.
quelle
chmod
)? In Ihrer Antwort wird der Modus nirgends erwähnt, der den Unterschied zwischen Sicherheit (oder Beschädigung) ausmachen kann.chmod
) zu ändern, indem ich allen Berechtigungen für ANDERE widerrief.Angenommen, alle Dateien gehören bereits dem
www-data
Benutzer (Sie können dies mit demls -slah
Befehl überprüfen ), der derwww-data
Gruppe angehört (nächste Spalte nach dem Benutzernamen in der Dateiliste), können Sie Ihren Benutzer einfach derselbenwww-data
Gruppe hinzufügen , um die Bearbeitung dieser Dateien zu ermöglichenfür bestehende Benutzer oder
für neu erstellte
quelle