Supongamos que tengo dos usuarios Alice y Bob y un grupo GROUPNAME y una carpeta foo
, ambos usuarios son miembros de GROUPNAME (usando Linux y ext3).
Si guardo como usuario Alice un archivo bajo foo
, los permisos son:-rw-r--r-- Alice Alice
. Sin embargo, ¿es posible lograr que cada archivo guardado en algún subdirectorio de foo
tiene permisos -rwxrwx--- Alice GROUPNAME
(es decir, propietaria Alice, grupo GROUPNAME)?
Respuesta aceptada:
Puede controlar los bits de permiso asignados con umask
, y el grupo creando el directorio setgid a GROUPNAME
.
$ umask 002 # allow group write; everyone must do this
$ chgrp GROUPNAME . # set directory group to GROUPNAME
$ chmod g+s . # files created in directory will be in group GROUPNAME
Tenga en cuenta que debe hacer chgrp
/chmod
para cada subdirectorio; no se propaga automáticamente (es decir, ni directorios existentes ni creados posteriormente bajo un setgid el directorio será setgid , aunque este último estará en el grupo GROUPNAME
).
También tenga en cuenta que umask
es un atributo de proceso y se aplica a todos los archivos creados por ese proceso y sus hijos (que heredan el umask
en efecto en su padre en fork()
tiempo). Es posible que los usuarios deban configurar esto en ~/.profile
, y es posible que deba tener cuidado con las cosas no relacionadas con su directorio que necesitan permisos diferentes. Los módulos pueden ser útiles si necesita configuraciones diferentes cuando hace cosas diferentes.
Puede controlar las cosas un poco mejor si puede usar ACL POSIX; debería ser posible especificar una máscara de permisos y un grupo, y hacer que se propaguen con sensatez. Sin embargo, la compatibilidad con las ACL POSIX es algo variable.