J'ai le problème suivant. Sur un serveur Unix (CentOS 5.5) plusieurs utilisateurs appartenant au même groupe ont accès aux mêmes fichiers (via ssh). Après qu'un utilisateur particulier (disons l'utilisateur A) a modifié le fichier, le propriétaire du fichier est changé en A, le groupe (G) et les autorisations (0664) restent intacts. Une fois qu'un deuxième utilisateur (B) essaie de modifier le même fichier, il n'est pas autorisé à le faire. Si par contre l'utilisateur B modifie le fichier alors A peut le changer sans problème (sauf à bousiller les permissions).
Je comprends qu'il y a quelque chose qui cloche avec les autorisations/groupes mais je ne peux pas savoir quoi. Donc, toute aide serait appréciée.
Fournir plus d'informations :
$ ls -l /path/file
-rwxrwxr-x 1 B G 42269 jan 14 10:30 file
$ getfacl /path/file
# file: file
# owner: B
# group: G
user::rwx
group::rwx
other::r-x
$ ls -ld /path
drwxrwxr-x 12 B G 4096 jan 14 10:24 .
$ getfacl /path
# file: .
# owner: B
# group: G
user::rwx
group::rwx
other::r-x
Réponse acceptée :
A a la permission d'écrire dans le répertoire, donc l'éditeur de A écrit un nouveau fichier /path/file.tmp
(ou un nom similaire) puis déplace le nouveau fichier vers /path/file
. Puisque A vient de créer le fichier, il appartient à A.
B n'a pas la permission d'écrire dans le répertoire, donc l'éditeur de B écrase le fichier existant, ce qui ne change pas le propriétaire.
(Voir Comment éditer un fichier et conserver sa liste de contrôle d'accès / son contexte de sécurité SELinux ? pour savoir pourquoi les éditeurs font ces choses.)
Il semble que A soit dans le groupe G mais pas B. Le moyen le plus simple de résoudre ce problème serait de s'assurer que A et B sont soit tous les deux dans le groupe G, soit tous les deux hors du groupe G.