J'ai des fichiers créés dans mon répertoire personnel avec seulement la permission de lecture de l'utilisateur ( r-- --- ---
). Je veux copier ce fichier dans un autre répertoire /etc/test/
qui a l'autorisation de dossier de 744 ( rwx r-- r--
). Je dois autoriser le fichier que je copie à hériter de l'autorisation du dossier dans lequel il est copié car jusqu'à présent, lorsque je le copie, les autorisations de fichiers sont toujours les mêmes ( r-- --- ---
). J'ai essayé la commande setfacl, mais cela n'a pas fonctionné? Veuillez aider.
PS. Je ne peux pas simplement chmod -r /etc/test/
parce qu'il y a beaucoup de fichiers qui seront copiés dans ce dossier au fil du temps et je ne veux pas exécuter la commande chmod chaque fois qu'un fichier est copié.
setfacl
commande avez-vous essayé? Quelle a été sa sortie?/bin/cp
sans options?Réponses:
Les autorisations ne sont généralement pas propagées par le répertoire dans lequel les fichiers sont copiés, mais les nouvelles autorisations sont plutôt contrôlées par l'utilisateur
umask
. Cependant, lorsque vous copiez un fichier d'un emplacement à un autre, c'est un peu un cas spécial où l'utilisateurumask
est essentiellement ignoré et les autorisations existantes sur le fichier sont préservées. Comprendre ce concept est la clé pour obtenir ce que vous voulez.Donc, pour copier un fichier mais "supprimer" ses autorisations actuelles, vous pouvez dire
cp
de "ne pas conserver" en utilisant le--no-preserve=all
commutateur.Exemple
Disons que j'ai le fichier suivant comme vous.
Et comme vous l'avez confirmé, si nous le copions simplement à l'aveugle,
cp
nous obtenons ceci:Maintenant, répétons cela, mais cette fois, dites
cp
de "supprimer les autorisations":Ainsi, le fichier copié a maintenant ses autorisations définies sur 664, où les a-t-il obtenues?
Si j'ai changé mon
umask
pour quelque chose d'autre, nous pouvons répéter ce test une troisième fois et voir les effets quiumask
ont sur le non préservécp
:Notez que les autorisations ne sont plus 664, mais 640? Cela a été dicté par le
umask
. Il disait à toutes les commandes qui créent un fichier de désactiver les 5 bits inférieurs dans les autorisations ... ces gars-là: (----wxrwx
).la source
--no-preserve
drapeau n'est pas standard, probablement un GNUisme.