Comment conserver les autorisations de fichiers lors de la copie de fichiers sous Linux

Les permissions de fichiers font partie intégrante de la spécification Unix. Cependant, il y a certaines choses que les utilisateurs débutants ignorent souvent, comme la façon de conserver les autorisations de fichiers sous Linux tout en les copiant.

Étant donné que les fichiers copiés sont essentiellement de nouveaux fichiers, leur autorisation dépend du umask de l'utilisateur actuel. Cela peut conduire à des situations où les fichiers ou dossiers copiés ont des autorisations totalement différentes de celles de la source.

Heureusement pour vous, il est facile de conserver les autorisations de fichiers sous Linux à l'aide d'outils de ligne de commande standard tels que cp et rsync . Consultez les exemples ci-dessous pour voir comment copier et conserver les autorisations sous Linux.

Préserver les autorisations de fichier à l'aide de cp

La commande cp standard a tout ce dont vous avez besoin pour conserver les autorisations de fichier lors de la copie. Vous pouvez utiliser l'option -p de cp pour conserver le mode, la propriété et les horodatages du fichier.

 cp -p source-file dest-file

Cependant, vous devrez ajouter l'option -r à cette commande lorsque vous traiterez des répertoires. Il copiera tous les sous-répertoires et fichiers individuels, en conservant leurs autorisations d'origine intactes.

 cp -rp source-dir/ dest-dir/

Vous pouvez également utiliser l'option -a de cp pour conserver les autorisations de fichier. Cela active le mode Archive , en préservant tout, des autorisations de fichiers aux contextes SELinux.

 cp -a source-dir/ dest-dir/

Conserver les autorisations sous Linux à l'aide de rsync

Vous pouvez également utiliser l'utilitaire rsync pour conserver les autorisations de copie sous Linux. De nombreux administrateurs préfèrent rsync à cp en raison de sa vitesse de copie plus rapide. Étant donné que rsync ne copie que la partie mise à jour du fichier, ils sont plus adaptés à des tâches telles que le clonage de votre disque dur Linux .

 rsync -a source-dir/ dest-dir

L'option -a de rsync active le mode Archive , qui préserve les attributs de fichier tels que les autorisations et les propriétés. Vous pouvez utiliser l'option -v pour une sortie détaillée et -h pour afficher les nombres dans un format lisible par l'homme.

 rsync -avh source-dir/ dest-dir

Notez également l'exemption de la barre oblique de fin ( / ) du répertoire de destination. L'ajout de la barre oblique de fin à la destination obligera rsync à copier les fichiers sous un autre niveau de sous-répertoire.

Vérifier les autorisations de fichier sous Linux

Vous pouvez facilement vérifier les autorisations de fichiers sous Linux à l'aide de la commande getfacl (obtenir des listes de contrôle d'accès aux fichiers). Il validera si les autorisations ont été conservées comme prévu.

 getfacl source-file
getfacl dest-file

Copier des fichiers tout en préservant les autorisations sous Linux

Cp et rsync fournissent tous deux des options standard pour préserver les autorisations de fichiers sous Linux. Vous pouvez utiliser cp pour les tâches quotidiennes, tandis que rsync sera mieux adapté aux données à grande échelle. Assurez-vous de valider les autorisations à l'aide de getfacl une fois la copie terminée.

Bien que rsync puisse copier des fichiers entre des machines distantes, la commande scp (copie sécurisée) est une autre option viable pour cette tâche. Vous pouvez sauvegarder en toute sécurité des fichiers vers et depuis des systèmes en réseau à l'aide de scp.