web-dev-qa-db-fra.com

Préserver les ACL avec rsync

Désolé, mais je ne trouve aucune solution à ce problème apparemment simple. La recherche en ligne et sur ce forum.

J'ai un besoin simple: copier un répertoire et son contenu dans un autre emplacement local, en préservant les ACL et xAttr. Cela devrait être assez simple par la page de manuel en utilisant les options -A et -X:

rsync -aAX /source/directory /destination/directory

Mais cela ne parvient pas à les préserver. Une simple utilisation de 'cp' fonctionne cependant.

cp -a /source/directory /destination/directory

J'ai essayé diverses autres combinaisons, même en tant que Sudo sans succès ...

Sudo rsync -rA /source/directory /destination/directory

J'utilise Ubuntu 14.04LTS; Je suis sûr que j'ai des ACL, car j'ai défini les ACL en utilisant 'setfacl' et 'getfacl'

setfacl -R -m "g:gp2:rw" MyDirectoryOfInterest

getfacl révèle que les ACL sont en cours d'utilisation:

>>getfacl /source/DirectoryOfInterest
getfacl: Removing leading '/' from absolute path names

# file: source/DirectoryOfInterest
# owner: myusername
# group: myusername
user::rwx
user:usr1:rwx
user:usr2:rw-
user:usr3:r--
group::rwx
group:gp1:r--
group:gp2:rw-
group:gp3:rwx
mask::rwx
other::rwx

Remarque: les répertoires source et de destination se trouvent sur le même lecteur, et même dans le même répertoire, le répertoire de destination ajoutant simplement le numéro '2'. par exemple./home/nom d'utilisateur/Car et/home/nom d'utilisateur/Car2.

Remarque: rsync s'exécutera, mais n'attribuera aucune ACL ni xAttr.

>>getfacl /home/myusername/test123/Cars2
getfacl: Removing leading '/' from absolute path names
# file: home/myusername/test123/Cars2
# owner: myusername
# group: myusername
user::rwx
group::rwx
other::r-x

Je dois utiliser rsync, car je souhaite éventuellement l'utiliser avec un NAS nécessitant l'utilisation de rsync pour mes besoins. Toute aide serait appréciée.

7
user2175064

Je vais répondre partiellement à ma propre question.

J'ai installé Lubuntu pour l'usage de mes enfants sur un vieux PC. J'ai décidé de voir si la version de Lubuntu de rsync fonctionnerait correctement. La version de rsync sur Lubuntu 16.04.1LTS est la version 31 du protocole 3.1.1.

rsync -aAX /source/filename /destination/
rsync -aAX /source/filename /destination/filename
rsync -aAX /source/filename /destination/newfilename

tout fonctionne bien à Lubuntu.

Soit la version de rsync sur Ubuntu 14.04LTS (3.0.1 si je me souviens bien) a un bogue, soit quelque part en chemin, j'ai foiré un fichier de configuration ou similaire.

Comme je vais installer Ubuntu 16.04.1LTS à la place d’Ubuntu 14.04LTS, je ne passerai plus de temps à essayer de résoudre le problème.

Cordialement.

3
user2175064