Ich betreibe einen Webserver und einen FTP-Server, an den /var/www
gebunden ist /home/user/www
.
Ich habe beide Verzeichnisse auf gesetzt chmod 777
(was in Ordnung ist, da es nur zum Testen dient).
Ich kann Dateien in hochladen /home/user/www
, aber wenn ich ein neues Verzeichnis erstelle, muss ich immer in chmod 777
diesem Ordner ausführen .
Andernfalls wird beim Durchsuchen die Fehlermeldung angezeigt
Sie haben keine Berechtigung, auf diesen Server zuzugreifen / zu testen /.
Gibt es eine Möglichkeit, alle darin enthaltenen Unterordner /var/www
für jedermann zugänglich zu machen? Oder könnten ihre Berechtigungen automatisch auf gesetzt werden 777
? Es ist ärgerlich, dass ich chmod 777
jedes Mal tippen muss.
permissions
apache2
chmod
user1645034
quelle
quelle
Antworten:
Dies ist eine schlechte Übung, aber Sie verwenden sie hoffentlich nur für die Entwicklung, oder Sie haben einen anderen guten Grund. Sie können die Berechtigungen angeben, wenn Sie ein Verzeichnis mit der folgenden
-m
Option erstellen :Oder Sie können die Berechtigungen rekursiv festlegen.
Überlegen Sie sich vor der Verwendung einer dieser beiden Optionen, ob Sie möchten, dass auf Ihr Dateisystem so zugegriffen werden kann.
Edit: Wie von Rinzwind erwähnt, ist hier eine bessere Möglichkeit, das zu erreichen, was Sie wollen.
Überprüfen Sie, welcher Gruppe Ihr
/var/www
Verzeichnis gehört, und fügen Sie dieser Gruppe Ihren Benutzer hinzu.Die Gruppe ist wahrscheinlich
www-data
.Anschließend können Sie Ihre Berechtigungen auf 775 festlegen.
quelle
Dateien und Verzeichnisse in Unix können drei Arten von Berechtigungen haben: read (
r
), write (w
) und execute (x
). Jede Berechtigung kannon
oderoff
für jede der drei Kategorien von Nutzern: die Datei oder das Verzeichnis Eigentümer; andere Personen in der gleichen Gruppe wie der Eigentümer; und alle anderen. Verwenden Sie den Befehl chmod, um den Modus einer Datei zu ändern. Die allgemeine Form ist chmod X @ Y file1 file2 ...quelle
Für den FTP-Server, der alle Dateien mit unterschiedlichen Berechtigungen erstellt, möchten Sie möglicherweise nach der Umask von FTPD suchen, wie dieser Daemon gestartet wird
Besuchen Sie diese Website unter https://linuxaria.com/article/linux-shell-understanding-umask-with-example
quelle
Mitteilung des öffentlichen Dienstes:
Verwenden Sie niemals chmod 777, um Probleme zu beheben
Es ist ein großes Sicherheitsrisiko, wenn Sie Dienste ausführen, die der Öffentlichkeit zur Verfügung stehen, insbesondere Webanwendungen (z. B. PHP).
Das Sicherheitsmodell des Betriebssystems geht davon aus, dass viele Dienste (z. B. Ihr Webserver) mit eingeschränkten Berechtigungen ausgeführt werden, um zu verhindern, dass sie Dateien ändern können. Das Festlegen von 777 für Dateien unterbricht dieses Design.
Ein entfernter Benutzer kann in Dateien schreiben oder diese hochladen und dann den Server (oder einen anderen Prozess auf Ihrem System) dazu verleiten, diese zu lesen oder auszuführen. Skripte oder Software weisen möglicherweise Fehler auf, die dies ermöglichen. Es ist sehr schwierig, jeden einzelnen Weg zu sperren, der passieren kann, wenn es Verzeichnisse gibt, die von der Welt beschreibbar sind.
Wird es in bestimmten Systemverzeichnissen (/ usr, / etc, / var usw.) verwendet, kann es Ihr System auf überraschende Weise beschädigen.
Einige wichtige Systemdateien benötigen spezielle Berechtigungen, beispielsweise setuid / setgid, um ausgeführt zu werden. Zum Beispiel sudo. Ändern Sie keine Dateiberechtigungen für Verzeichnisse und Dateien, die vom System selbst eingerichtet wurden.
Es gibt keine Möglichkeit, dies rückgängig zu machen und alle alten Berechtigungen wiederherzustellen.
Wenn Sie zuvor Dateien und Ordner mit verschiedenen Berechtigungen hatten, können Sie nicht mehr zu diesen bestimmten Berechtigungen zurückkehren, sondern nur alle auf dasselbe ändern. Dadurch gehen möglicherweise bestimmte Berechtigungseinstellungen verloren, die für bestimmte Dateien erforderlich waren.
Es gibt immer einen angemesseneren Weg, um das zu erreichen, was Sie erreichen möchten.
In diesem Fall möchten Sie nur, dass Ihr Webserver ein Verzeichnis lesen kann . Die Erlaubnis, die von der Welt geschrieben werden kann, ist weit mehr, als Sie tun müssen.
Finden Sie heraus, warum der Webserver dieses Verzeichnis nicht lesen kann (Hinweis: Wahrscheinlich liegt es daran, dass Ihr Home-Verzeichnis nicht von der Welt gelesen werden kann. Weltweit lesbar ist viel sicherer als von der Welt beschreibbar - legen Sie Ihr Home-Verzeichnis auf 755 oder fest Verschieben Sie das WWW-Verzeichnis außerhalb Ihres Hauses in einen Ordner wie / var / www oder / srv.
quelle
Das geht bei mir nicht.
Muss ich auch benutzen
-f
.quelle
Wenn Sie Berechtigungen und / oder Eigentumsrechte aus einer anderen Datei kopieren möchten, mit der Sie zufrieden sind, können Sie dies mit sudo chmod --reference = path / to / file / to / Referenzpfad / to / file / you / want / tun. zu / change / permissino / to
Dasselbe können Sie auch für den Dateibesitz tun.
quelle