Ich versuche, den gesamten /
zu kopieren Verzeichnis an einen anderen Ort. Wenn cp rekursiv ausgeführt wird, schlägt es bei einigen Dateien fehl wie:-
/ # ls -lrt /sys/module/nf_conntrack_ipv4/uevent
--w------- 1 root root 4096 Mar 7 06:29 /sys/module/nf_conntrack_ipv4/uevent
/ #
/ # cat /sys/module/nf_conntrack_ipv4/uevent
cat: can't open '/sys/module/nf_conntrack_ipv4/uevent': Permission denied
/ # cp /sys/module/nf_conntrack_ipv4/uevent /tmp
cp: can't open '/sys/module/nf_conntrack_ipv4/uevent': Permission denied
Wenn ich eine Datei mit nur w
erstelle Berechtigungen und versuche es zu kopieren/kategorisieren, ich konnte dort keine Probleme sehen. Bei einigen Dateien wie der oben genannten kann ich sie jedoch nicht kopieren oder kategorisieren, obwohl ich es als Root-Benutzer versuche. Das Merkwürdige ist auch, dass die Größe der oben genannten Datei mit 4096 angegeben wird, was der Größe des Verzeichnisses ähnelt. Ist das eine spezielle Datei?
Ich schätze, ich vermisse hier etwas und brauche etwas Input, um mehr über solche Dateien oder solche Verhaltensweisen zu erfahren. Bitte helfen Sie mir zu verstehen, warum ich den Inhalt solcher Dateien nicht kategorisieren darf.
Akzeptierte Antwort:
In einem normalen Dateisystem, z. ext4
, wenn Sie nur w
haben Berechtigung in einer Datei können Sie nicht lesen (cat
) müssen Sie lesen (r
) etwas dafür. Beachten Sie, root
kann jede Datei unabhängig von den Berechtigungsbits lesen.
Jetzt /sys
ist ein Einhängepunkt spezieller sysfs
wird vom Linux-Kernel bereitgestellt, der eigentlich ein virtuelles Dateisystem ist und anders funktioniert als normale Dateisysteme. /sys
enthält gerätebezogene Informationen des Systems.
Etwas in /sys
ändern würde die interne Datenstruktur des Kernels direkt ändern, sodass es vom Kernel abhängt, was er erlaubt oder verweigert.
Für /sys/module/nf_conntrack_ipv4/uevent
, haben Sie nur w
Bit gesetzt für Eigentümer (root
), auch wenn Sie r
hinzufügen Bit für root
(was eine sehr schlechte Idee ist ), während Sie die Datei lesen, erhalten Sie einen E/A-Fehler, da der Kernel per Design niemandem erlauben würde, die uevents für nf_conntrack_ipv4
zu lesen Modul.