Ich habe den Besitz meiner localhost-Datei für /var/www/
und ihrer Unterordner geändert und ihr die Berechtigung 777 erteilt. Wenn ich jedoch einen neuen Ordner hinzufüge, erhält der neue Ordner diese Berechtigung nicht automatisch. Wie kann ich einem Ordner 777 für immer die Berechtigung erteilen, damit er beim Hinzufügen eines neuen Ordners oder einer neuen Datei dieselbe Berechtigung erhält?
permissions
Kamal
quelle
quelle
find . -type d -exec chmod 777 {} +
zu ändern, können Sie alle Verzeichnisse in 777 ändern. Denken Sie daran, dass Sie als Root angemeldet sein müssen, um bessere Ergebnisse zu erzielen, und dass Sie sich im Ordner befinden.Antworten:
Berechtigungen für neu erstellte Dateien werden von umask festgelegt
quelle
Sie können die rekursive Option jederzeit verwenden.
sudo chown -R username /var/www
quelle
Wie andere bereits erwähnt haben ,
/var/www
ist es eine wirklich schlechte Idee, 777 Berechtigungen zu erteilen, insbesondere in der Produktion.Eine bessere Lösung wäre, Schreibberechtigungen nur den Benutzern zu erteilen, die die Dateien ändern müssen. Eine der Möglichkeiten, dies zu tun, ist:
Erstellen Sie eine neue Gruppe
Fügen Sie die Benutzer, die die Daten ändern müssen,
/var/www
zu dieser Gruppe hinzuÄndern Sie rekursiv das Eigentum
/var/www
an dieser GruppeAktivieren Sie diese
umask
Option,/var/www
damit alle neu erstellten Dateien der von uns erstellten Gruppe gehören.Eine andere Möglichkeit wäre, erneut ACL zu verwenden, um Schreibberechtigungen nur Benutzern zu erteilen, die sie benötigen.
Hier finden Sie detaillierte Anweisungen zum Serverfehler .
Im Allgemeinen sollten der Webserver oder andere Netzwerkdienste oder Systembenutzerkonten keine Schreibberechtigungen für die vom Webserver bereitgestellten Dateien haben, da dies die Möglichkeit einer willkürlichen Codeausführung eröffnet.
quelle
Sie sollten
/etc/apache/envvars
als Root mit dem Editor Ihrer Wahl bearbeiten .Beispiel: ALT+F2
gksudo gedit /etc/apache2/envvars
Gehen Sie zum Ende der Datei und fügen Sie eine Zeile hinzu
umask XXX
.Wobei umask das binäre Gegenteil des gewünschten Berechtigungswerts ist.
Für 774 wäre dies 003. Für 777 wäre es eine schlechte Idee .
Speichern.
Starten Sie Apache neu.
Beispiel:
sudo apache2ctl restart
Dies betrifft nur Dateien / Ordner, die vom Apache-Benutzer neu erstellt wurden.
Zusätzlicher Hinweis, Lesen und Schreiben ist 6 im Benutzer-, Gruppen- oder beliebigen Steckplatz.
quelle
Eine "out of the box" -Lösung besteht auch darin, Ihren http-Server so zu konfigurieren, dass er einen anderen Ordner verwendet. Wenn Sie Apache verwenden, bearbeiten Sie einfach die Konfigurationsdateien. Auf diese Weise müssen Sie die Berechtigungen für / var / www nicht ändern, was eine schlechte Idee sein kann (potenzielle Sicherheitsprobleme).
Und umask ist die Antwort auf Ihre Frage. Es kann verwendet werden, um Standardberechtigungen für neu erstellte Ordner und Dateien einzuschränken. Und Distributionsentwickler neigen dazu, den Zugriff auf einige Systemordner einzuschränken.
quelle
Ich denke, Sie möchten Schreibzugriff haben,
/var/www
um Dateien und Verzeichnisse zu ändern. Ich denke, die beste Lösung ist, zu installierenapache2-mpm-itk
und in der Konfigurationsdatei des virtuellen Hosts hinzuzufügen/etc/apache2/sites-available/default
:Auf
chown your-username\: /var/www -Rv
diese Weise wird Apache für diesen virtuellen Host mit Ihrer UID / GID ausgeführt, und Sie können Dateien bearbeiten. Sogar von PHP erstellte Dateien haben Ihre UID / GIDquelle