Solución 1:
Sí, las ACL pueden hacer esto.
-
Asegúrese de que su sistema de archivos esté montado con
acl
. Para verificar esto, escribamount
. Deberías veracl
enumerados entre otros permisos, por ejemplo,/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl)
Si no está montado con acl, abre
/etc/fstab
y agregaacl
a la lista de opciones:# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda1 / ext3 noatime,errors=remount-ro,acl 0 1
Ahora, vuelva a montar el sistema de archivos en ejecución con las nuevas opciones:
mount -v -o remount /
-
Instale las utilidades de ACL. En ubuntu/debian, esto es:
sudo apt-get install acl
-
Tus nuevos amigos son
setfacl
ygetfacl
. Usasetfacl
para cambiar la acl predeterminada de un directorio:setfacl -d -m o:r foo
-d
establece el valor predeterminado,-m
modifica acl, yo:r
concede a "otros" el derecho de lectura. Establecer el valor predeterminado en un directorio es aproximadamente equivalente a establecer setgid en un directorio, pero en lugar de que los archivos recién creados hereden el grupo, heredan la acl. Juntos, setgid y acl pueden ser poderosos, porque puede otorgar permisos predeterminados a un grupo y hacer que los archivos recién creados pertenezcan a ese grupo, para un umask por directorio basado en grupos efectivo. -
Revisa tu trabajo:
ls -l
ahora debería mostrar un "+" adicional que indica la presencia de acl además de los permisos de archivo estándar.% ls -la foo/ drwxr--r--+
Puede obtener información detallada sobre la ACL usando
getfacl
.% getfacl foo # file: foo # owner: you # group: you user::rwx group::r-- other::r-- default:user::rwx default:group::--- default:other::r--
Solución 2:
También puede forzar una umask para el directorio configurando la propiedad ACL de la máscara de esta manera:
setfacl -d -m mask:07 .