Sto cercando di copiare l'intero /
directory in un'altra posizione. Quando si esegue cp in modo ricorsivo, non riesce su alcuni file come:-
/ # 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
Se creo qualche file con solo w
autorizzazioni e prova a copiarlo/cat, non ho riscontrato problemi lì. Tuttavia, per alcuni file come quello sopra menzionato, non sono in grado di copiarlo o catturarlo anche se sto provando come utente root. Inoltre, la cosa strana è che la dimensione del file sopra menzionato è menzionata come 4096 che è simile a quella che abbiamo per la directory. È qualcosa di speciale?
Immagino che mi manchi qualcosa qui e che sia necessario un input per saperne di più su tali file o comportamenti. Per favore, aiutami a capire perché non sono autorizzato a catturare i contenuti di tali file.
Risposta accettata:
In un filesystem normale, ad es. ext4
, se hai solo w
permesso in un file, non sarai in grado di leggere (cat
) è necessario leggere (r
) un po' per quello. Nota che, root
può leggere qualsiasi file indipendentemente dai bit di autorizzazione.
Ora, /sys
è un punto di montaggio di sysfs
speciali fornito dal kernel Linux che è in realtà un filesystem virtuale e funziona in modo diverso dai normali filesystem. /sys
contiene informazioni relative al dispositivo del sistema.
Modificare qualcosa in /sys
altererebbe direttamente la struttura dei dati interna del kernel, quindi dipende dal kernel cosa consentirebbe o negherebbe.
Per /sys/module/nf_conntrack_ipv4/uevent
, hai solo w
bit impostato per il proprietario (root
), anche se aggiungi r
bit per root
(che è una pessima idea ), durante la lettura del file si otterrebbe un errore di I/O perché in base alla progettazione il kernel non consentirebbe a nessuno di leggere gli uevents per nf_conntrack_ipv4
modulo.