Ich habe CentOS auf einer Box in meinem lokalen Netzwerk eingerichtet und httpd, PHP, Webmin (und UserMin) usw. installiert. Ich habe mich für ProFTPd entschieden und Ports für FTP, Webmin und Apache geöffnet.
Ich kann jetzt über das lokale Netzwerk auf Webmin zugreifen und die standardmäßige Apache-Testseite anzeigen. Ich kann auch als der von mir erstellte Benutzer eine SFP-Verbindung herstellen. Ich kann jedoch keine Dateien über FTP in /var/www/ schreiben.
Was muss ich tun, um einem oder mehreren Benutzern Zugriff auf das entsprechende Verzeichnis zu ermöglichen?
Antwort1
Die Antwort von LDJames (nicht mehr hier) hat mich zwar auf das ganze Benutzer- und Gruppenproblem aufmerksam gemacht, war aber nicht wirklich hilfreich. Zum Glück reichte sie aus, um Google einzuschalten. Hier sind die Schritte, die ich unternommen habe, um das Problem zu lösen.
Der Ordner gehörte root, was keine gute Gruppe wäre, zu der man einen Benutzer hinzufügen könnte. Die Lösung bestand darin, eine spezielle Gruppe zu erstellen. Ich nannte sie „www“, weil ich so erfinderisch bin. Dann verschob ich den HTML-Ordner in diese Gruppe.
<user>
ist der Benutzername für den Benutzer auf meinem System
- su zum Root (oder verwenden Sie sudo in jeder Zeile)
groupadd www
(Gruppe erstellen)usermod -a -G www <user>
(Benutzer zur Gruppe hinzufügen)- navigiere zu /var/www/
chgrp www html
(Ordner der Gruppe zuordnen)chmod g+rwx html
(Gruppenzugriff auf Ordner erlauben - siehe auchhttp://ss64.com/bash/chmod.htmlwas sehr hilfreich war)
Ergebnis: Ich kann jetzt Dateien hochladen und könnte dies bei Bedarf auch anderen Benutzern ermöglichen.
- Nach einiger Aufforderung habe ich Apache auch so eingestellt, dass es als www-Gruppe ausgeführt wird.
Dies geschieht durch das Festlegen der Umgebungsvariablen (der genaue Speicherort ist je nach Linux-Variante unterschiedlich).
Trotz anderer Antworten ist die richtige Vorgehensweise:
export APACHE_RUN_USER=www
export APACHE_RUN_GROUP=www
Das Obige setzt voraus, dass ich auch einen Benutzer namens „www“ erstellt habe. Da es sich jedoch um eine Entwicklungsbox auf meinem Schreibtisch handelt, bin ich zufrieden damit, dass Apache vorerst als Root ausgeführt wird.
Ich habe herausgefunden, wie man den Benutzer und die Gruppe von Apache einrichtet, und zwar über:Unter welchem Benutzer sollten Apache und PHP ausgeführt werden? Welche Berechtigungen sollten /var/www-Dateien haben?