[Linux] Mes attributs étendus ne se copient pas !

Marc Grandmaire mgm@::1
Ven 20 Avr 10:03:17 CEST 2007


Salut,

On a parlé il y a quelque temps ici des attributs étendus...
C'est bien quand ça marche à 100% ;-((

Par exemple, moi, mon "cp" ne les copie pas :
$ touch file1
$ getfattr -d file1
$ setfattr -n "user.attrname" -v "valeur_attr" file1
$ getfattr -d file1
# file: file1
user.attrname="valeur_attr"
$ cp -a file1 file2
$ getfattr -d file2
$

file2 n'a pas récupéré les attributs de file1 !!!

Par contre, pour les ACLs, ça marche :
$ setfacl -m g:audio:rwx file1
$ getfacl file1
# file: file1
# owner: mgm
# group: mgm
user::rw-
group::r--
group:audio:rwx
mask::rwx
other::r--
$ cp -a file1 file2
$ getfacl file2
# file: file2
# owner: mgm
# group: mgm
user::rw-
group::r--
group:audio:rwx
mask::rwx
other::r--
$

Si on affiche tous les attributs (car les ACLs ne sont qu'un cas 
particulier) : 
$ getfattr -m . -d file1
# file: file1
system.posix_acl_access=0sAgAAAAEABgD/////BAAEAP////8IAAcAHQAAABAABwD/////IAAEAP////8=
user.attrname="valeur_attr"
$  getfattr -m . -d file2
# file: file2
system.posix_acl_access=0sAgAAAAEABgD/////BAAEAP////8IAAcAHQAAABAABwD/////IAAEAP////8=
$

Apparemment, "cp" ne copie que les attributs system* ! Crévindiou !

Alors, THE questions (enfin :-) :
- chez vous ça marche ?
- ça dépend de la distrib/versions des coreutils ? (moi avoir Etch)
Il y a quelqu'un de chez Suse ici qui disait en 2003 carrement que ce n'est 
pas possible : http://www.suse.de/~agruen/ea-acl-copy/
"Even cp is unaware of Extended Attributes at the moment"
Mais maintenant ? en 2007 !
- ça dépend de la compilation de cp ?

La finalité est l'utilisation pour un serveur Samba.
Je dois mapper les attributs DOS pour assurer la meilleure 
compatibilité "windows" possible. Par exemple Samba crée un attribut 
étendu "user.DOSATTRIB=0x21" si le fichier a le flag Dos "read-only".
Et il y aura une vielle appli Dos qui est assez sensible à ces machins là...


Plus d'informations sur la liste de diffusion linux