it-swarm.com.de

'cat': Datei kann nicht geöffnet werden: Berechtigung verweigert

Ich versuche, das gesamte Verzeichnis / an einen anderen Speicherort zu kopieren. Wenn Sie cp rekursiv ausführen, schlägt dies bei folgenden Dateien fehl:

/ # 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 nur mit den Berechtigungen w erstelle und versuche, sie zu kopieren/zu cat, sehe ich dort keine Probleme. Bei einigen Dateien wie den oben genannten kann ich sie jedoch weder kopieren noch kopieren, obwohl ich es als Root-Benutzer versuche. Das Seltsame ist auch, dass die Größe der oben genannten Datei 4096 ist, was derjenigen für das Verzeichnis ähnelt. Ist das etwas Besonderes?

Ich vermisse hier etwas und brauche Eingaben, um mehr über solche Dateien oder solche Verhaltensweisen zu erfahren. Bitte helfen Sie mir zu verstehen, warum ich den Inhalt solcher Dateien nicht durchsuchen darf.

2
Rahul

In einem regulären Dateisystem, z. ext4, wenn Sie nur die Berechtigung w in einer Datei haben, können Sie sie nicht lesen (cat), Sie benötigen dafür das Lese-Bit (r) . Beachten Sie, dass root jede Datei unabhängig von den Berechtigungsbits lesen kann.

Nun ist /sys ein Einhängepunkt für spezielle sysfs, die vom Linux-Kernel bereitgestellt werden und eigentlich ein virtuelles Dateisystem sind und anders funktionieren als normale Dateisysteme. /sys enthält gerätebezogene Informationen des Systems.

Wenn Sie etwas in /sys ändern, wird die interne Datenstruktur des Kernels direkt geändert, sodass es vom Kernel abhängt, was dieser zulässt oder ablehnt.

Für /sys/module/nf_conntrack_ipv4/uevent haben Sie nur das w-Bit für den Eigentümer (root) festgelegt, auch wenn Sie das r-Bit für root (das heißt Eine sehr schlechte Idee), während des Lesens der Datei würde ein E/A-Fehler auftreten, da der Kernel von Natur aus niemandem erlauben würde, die Ereignisse für das nf_conntrack_ipv4 -Modul zu lesen.

10
heemayl

Um spezielle Dateisysteme wie /sys und /proc zu vermeiden, sollten Sie cp die folgende Option geben:

-x, --one-file-system
    stay on this file system

(zitiert aus die Handbuchseite )

Wenn Sie mehrere tatsächliche Dateisysteme haben, z. / und /home, müssen Sie dann mehrere cp Befehle eingeben.

Achten Sie darauf, dass Sie nicht von und zu derselben Stelle kopieren . Das kann zu Endlosschleifen führen, in denen Sie Kopien von Kopien von ...

4
Stig Hemmer