Tengo el siguiente problema. En el servidor Unix (CentOS 5.5) varios usuarios que pertenecen al mismo grupo tienen acceso a los mismos archivos (a través de ssh). Después de que un usuario en particular (digamos el usuario A) haya editado el archivo, el propietario del archivo se cambia a A, el grupo (G) y los permisos (0664) permanecen intactos. Una vez que un segundo usuario (B) intente modificar el mismo archivo, no podrá hacerlo. Si por el contrario el usuario B modifica el archivo entonces A puede cambiarlo sin problemas (excepto jodiendo los permisos).
Entiendo que hay algo jodido con los permisos/grupos, pero no puedo averiguar qué. Así que cualquier ayuda sería apreciada.
Proporcionar más información:
$ 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
Respuesta aceptada:
A tiene permiso para escribir en el directorio, por lo que el editor de A escribe un nuevo archivo /path/file.tmp
(o algún nombre similar) luego mueve el nuevo archivo a /path/file
. Dado que A acaba de crear el archivo, es propiedad de A.
B no tiene permiso para escribir en el directorio, por lo que el editor de B sobrescribe el archivo existente, que no cambia la propiedad.
(Consulte ¿Cómo edito un archivo y conservo su lista de control de acceso/contexto de seguridad de SELinux? para obtener algunos antecedentes sobre por qué los editores hacen estas cosas).
Parece que A está en el grupo G pero B no. La forma más fácil de resolver esto sería asegurarse de que A y B estén en el grupo G o que no estén en el grupo G.