Ich habe das Tutorial unterhttps://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-centos-7(zusammen mit allen erforderlichen Tutorials), um WordPress auf meinem neuen CentOS7-Server einzurichten. Bis jetzt funktioniert alles einwandfrei
sudo chown -R apache:apache /var/www/html/*
Ich verstehe, dass der obige Befehl dem Apache-Benutzer und der Apache-Gruppe den Besitz zuweist. Normalerweise verbinde ich mich jedoch über Putty und Filezilla mit meinem eigenen myuser
Konto und möchte die Berechtigungen für dieses Konto aktivieren.
Zusätzlich zum obigen Befehl habe ich also auch myuser
der apache
Gruppe hinzugefügt und mich abgemeldet und wieder angemeldet. Allerdings erhalte ich immer noch die Fehlermeldung „Berechtigung verweigert“, wenn ich versuche, CRUD-Operationen im HTML-Ordner auszuführen. Wenn ich die Befehle jedoch erhöhe, sudo
funktionieren sie, daher bin ich etwas ratlos, wie ich dem myuser
Konto die Ausführung von Dateioperationen gestatten kann. Irgendwelche Ideen?
Antwort1
Sie sollten sowohl den Besitz, die Berechtigungen als auch den Selinux-Kontext überprüfen
Eigentümerschaft – Klingt, als hätten Sie das richtig gemacht. Eigentümer:Gruppe auf CentOS7 sollte apache:apache sein. Für Ihren Benutzer müssen Sie Apache als zusätzliche Gruppe hinzufügen. Sie können dies mit überprüfen. id myuser
Wenn Apache nicht in der Liste der Gruppen angezeigt wird, führen Sie aus usermod -a -G apache myuser
.
Berechtigungen - Sie werden als rwxrwxrwx aufgelistet. Der mittlere rwx-Satz ist der wichtige Teil, da er den Zugriff über die Gruppe steuert (das ist auch wichtig für myuser). Sie benötigen wahrscheinlich nur Lese-/Schreibberechtigungen, daher chmod -R 664 directoryname
würde wahrscheinlich ein ausreichen (Lesen/Schreiben für Apache-Benutzer und -Gruppe, Nur-Lesen für alle anderen). Sie können die Berechtigungen mit überprüfen ls -l
.
Hinweis: WordPress enthält normalerweise eine versteckte „.htaccess“-Datei. Sie müssen den chmod manuell auf diese und alle anderen versteckten Dateien anwenden, da diese durch rekursives chmod/chown übersprungen werden.
SELinux-Kontexte - Diese können Sie mit überprüfen ls -Z
. Um die SELinux-Durchsetzung zu deaktivieren, können Sie setenforce 0
- ausführen. Dies ist gut zum Debuggen, ob SELinux der Übeltäter ist oder nicht. Sie sollten es jedoch nach Abschluss des Tests mit wieder aktivieren setenforce 1
. Wenn SELinux das Problem ist, müssen Sie wahrscheinlich den Kontext der Dateien mit etwas in der Art von ändern:chcon -R -t httpd_sys_rw_content_t directoryname
Hinweis: Ein rekursiver chcon überspringt auch versteckte Dateien (alle Dateien, die mit einem „.“ beginnen).
Randbemerkung: Wenn Sie Symlinks verwenden, sollten Sie sicherstellen, dass sowohl das verknüpfte Verzeichnis als auch der eigentliche Symlink über die entsprechenden Eigentümer/Berechtigungen verfügen. Um einen Symlink mit chmod / chown anzusprechen, verwenden Sie das -h
Flag und stellen Sie, wenn Sie auf ein Verzeichnis abzielen, sicher, dass der abschließende Schrägstrich nicht vorhanden ist (z. B. „ /var/www/html/linked_dir
and not“ /var/www/html/linked_dir/
– seien Sie vorsichtig, wenn Sie die Tabulatorvervollständigung verwenden, da diese automatisch den abschließenden Schrägstrich hinzufügt).