J'essaie de copier l'intégralité du /
répertoire vers un autre emplacement. Lorsque vous faites cp de manière récursive, cela échoue sur certains fichiers comme :-
/ # 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
Si je crée un fichier avec seulement w
permissions et essayez de le copier/catcher, je n'y voyais aucun problème. Cependant, pour certains fichiers comme celui mentionné ci-dessus, je ne parviens pas à le copier ou à le chater même si j'essaie en tant qu'utilisateur root. De plus, la chose étrange est que la taille du fichier mentionné ci-dessus est mentionnée comme étant 4096, ce qui est similaire à celui que nous avons pour le répertoire. Est-ce un fichier spécial ?
Je suppose qu'il me manque quelque chose ici et que j'ai besoin d'informations pour en savoir plus sur ces fichiers ou ces comportements. Veuillez m'aider à comprendre pourquoi je ne suis pas autorisé à cat le contenu de ces fichiers.
Réponse acceptée :
Dans un système de fichiers normal, par ex. ext4
, si vous n'avez que w
autorisation dans un fichier, vous ne pourrez pas lire (cat
) il, vous devez lire (r
) peu pour cela. Notez que, root
peut lire n'importe quel fichier indépendamment des bits d'autorisation.
Maintenant, /sys
est un point de montage de sysfs
spécial fourni par le noyau Linux qui est en fait un système de fichiers virtuel et fonctionne différemment des systèmes de fichiers ordinaires. /sys
contient des informations relatives à l'appareil du système.
Modifier quelque chose dans /sys
modifierait directement la structure de données interne du noyau, donc cela dépend du noyau ce qu'il autoriserait ou refuserait.
Pour /sys/module/nf_conntrack_ipv4/uevent
, vous n'avez que w
bit défini pour le propriétaire (root
), même si vous ajoutez r
bit pour root
(ce qui est une très mauvaise idée ), lors de la lecture du fichier, vous obtiendrez une erreur d'E/S car, de par sa conception, le noyau ne permettrait à personne de lire les uevents pour le nf_conntrack_ipv4
module.