Mit chmod
könnte ich die Berechtigungen für eine Datei festlegen, aber ..
was würde passieren , wenn das Verzeichnis parent ( ) widersprüchliche Berechtigungen hätte?
Und wenn ich eine neue Datei mit touch
oder ähnlichem erstelle , wie werden die anfänglichen Berechtigungen berechnet? Werden Berechtigungen davon geerbt ..
?
Und warum kann ich im Verzeichnis nichts tun, wenn ich das executable
Berechtigungsflag entfernt habe ?
$ mkdir temp;
$ chmod -x temp;
$ touch temp/a;
$ ls temp;
touch: cannot touch `temp/a': Permission denied
quelle
chdir
über den vollständigen Pfad gelangen konnten (versuchen Sie es mitmkdir foo/bar; cd foo/bar; chmod 000 ..; cd ..; ls -ld . ..; touch yes_I_can_write_here; chmod 755 ..; cd ..
). Dies kommt nicht oft vor (es wird gelegentlich in einigen Prozessbeschränkungsszenarien verwendet).Zuallererst ... unter Linux ist alles eine Datei. Mit allem meine ich alles ... Ihre Ordner, Maus oder Tastatur ... alles ist eine Datei.
Beantworten wir nun Ihre Fragen:
Es gibt keine Konflikte zwischen Ordner und enthaltener Datei. Wenn Sie einen Ordner haben, der nur über Leserechte verfügt, in diesem Ordner jedoch eine Datei mit Schreibberechtigungen vorhanden ist, können Sie in diese Datei schreiben. Sie können jedoch keine Dateien in diesem Ordner erstellen / löschen. Mach dir also keine Sorgen um Konflikte. Sie können auch den Inhalt des Ordners lesen (den Ordner auflisten).
Standardberechtigungen sind normalerweise 644 (dh: rw für Benutzer, r für Gruppe und andere)
Das "ausführbare" Bit für ein Verzeichnis bedeutet "Auflisten" des Verzeichnisses. Mit anderen Worten, wenn Sie einen Ordner -xa haben, können Sie dessen Inhalt nicht kennen, das heißt, Sie können nichts darin anfassen.
quelle
cd
aus dem Verzeichnis und auscat
der Datei.umask
(grob gesagt, es werden ausgeschlossene Bits angegeben) und die von der Anwendung, die die Datei erstellt, angeforderten Berechtigungen gegeben. Dasumask
ist oft 022, was zu Berechtigungen 755 , wenn das Programm fordert eine ausführbare Datei (Argument 777), 644 , wenn die Anwendung eine öffentliche Datei (Argument 666) anfordert, und 600 , wenn die Anwendung eine private Datei (Argument 600) anfordert. (3) Wie Kevin sagt, haben Sie hier die Ausführungs- und Leseberechtigungen für ein Verzeichnis verwechselt./dev
Geräte wie z. B. mein Bluetooth-Radio oder meine Ethernet-Karte ist kein Knoten vorhanden . Übergeordnete Konzepte wie X11-Fenster werden ebenfalls nicht als Dateien angezeigt (Ausnahme :)wmii
. (Übrigens, die Aussage kann auf Plan9 OS angewendet werden.)