Diese Frage hat hier bereits eine Antwort:
Ich habe einen Ordner, in dem neue Unterordner und Dateien automatisch von einem Skript erstellt werden.
Ich möchte die Benutzer- und Gruppenberechtigungen rekursiv für alle neuen Ordner und Dateien im übergeordneten Verzeichnis verwalten. Ich weiß, dass dies das Setzen eines Sticky Bits beinhaltet, aber ich kann anscheinend keinen Befehl finden, der genau zeigt, was ich brauche.
Das habe ich bisher gemacht:
sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
Danach möchte ich, dass die 660-Berechtigungen für alle Ordner und Dateien, in denen sie abgelegt sind, rekursiv festgelegt werden /path/to/parent
.
Alles, was ich bisher versucht habe, ist jedoch gescheitert. Kann mir bitte jemand helfen?
Tatsächlich ist das Oktalflag 660 wahrscheinlich nicht einmal richtig. Die Berechtigungen, die ich möchte, sind:
/path/to/parent
Untergeordnete Verzeichnisse können von Benutzern mit Berechtigungen ausgeführt werden- Dateien können vom Benutzer selbst und von Mitgliedern einer Gruppe gelesen / geschrieben werden
- Dateien und Ordner in
/path/to/parent
sind NICHT von der Welt lesbar
Ich arbeite mit Ubuntu 10.0.4 LTS.
Kann mir bitte jemand helfen?
quelle
o+w
eine gute Wahl? Sollten sich die Änderungen nicht aufu
und beschränkeng
? Ansonsten, wozu dient es, die Sicherheit für das Verzeichnis und die Unterverzeichnisse aufrechtzuerhalten?Die gesuchten Berechtigungsbits sind 0770 und 0660.
rw-
Berechtigungen →110
binär →6
oktalDas Gruppeneigentum kann an neue Dateien und Ordner vererbt werden, die in Ihrem Ordner / path / to / parent erstellt wurden, indem Sie das setgid-Bit folgendermaßen setzen
chmod g+s
:Jetzt wird allen neuen Dateien und Ordnern, die unter / path / to / parent erstellt wurden, dieselbe Gruppe zugewiesen, die unter / path / to / parent festgelegt wurde.
POSIX-Dateiberechtigungen werden nicht vererbt. Sie werden durch den Erstellungsprozess vorgegeben und mit dem aktuellen umask-Wert kombiniert.
Sie können jedoch POSIX-ACLs verwenden , um dies zu erreichen. Legen Sie die Standard-ACL für ein Verzeichnis fest:
Dies gilt
setfacl
für das Verzeichnis / path / to / parent,-m
wodurch die-d
Standard- ACLs geändert werden. Diese werden auf neu erstellte Elemente angewendet. (GroßbuchstabenX
bedeuten, dass nur Verzeichnisse das+x
Bit empfangen .)(Bei Bedarf können Sie den ACLs ein
u:someuser:rwX
oderg:someuser:rwX
- vorzugsweise eine Gruppe - hinzufügen .)Hinweis: Auf älteren Systemen, die ext3 / ext4 verwenden, mussten Sie das Dateisystem mit der
acl
Option bereitstellen , da sonst alle ACLs ignoriert und das Festlegen neuer nicht zugelassen wurden.Verwenden
tune2fs -o acl <device>
oder bearbeiten Sie diese Option, um sie dauerhaft festzulegen/etc/fstab
.quelle
unzip
?Ich denke, Sie sind über das Problem zu komplizieren. Wenn andere nicht auf das Verzeichnis der obersten Ebene zugreifen können, können andere Benutzer keine Dateien in der Baumstruktur erstellen. Ein Gruppenschreibzugriff ist nicht erforderlich, wenn nur Apache schreibt.
Diese Schritte sollten tun, was Sie wollen (ersetzen Sie das Verzeichnis in den Befehlen durch das Verzeichnis, das Sie verwenden möchten):
umask 027
es dem Apache Defaults Skript hinzu/etc/default/apache
. Dadurch wird verhindert, dass andere auf Dateien oder Verzeichnisse zugreifen, die von Apache erstellt wurden.chown www-data:www-data directory
das Verzeichnis aus, in das Apache schreiben soll.chmod 750 directory
das Verzeichnis aus, in das Apache schreiben soll.Wenn Sie Apache erlauben, in ein Verzeichnis zu schreiben, können Sie alle Arten von Malware in den von Ihnen bereitgestellten Inhalt einfügen. Überwachen Sie den Inhalt dieses Verzeichnisbaums entsprechend.
quelle