Quiero configurar una carpeta de tal manera que todo lo que se cree dentro de ella (directorios, archivos) herede los permisos y el grupo por defecto.
Llamemos al grupo "media". Y además, las carpetas/archivos creados dentro del directorio deben tener g+rw automáticamente.
Lo encontré: Aplicando los permisos por defecto
Del artículo:
chmod g+s <directory> //set gid
setfacl -d -m g::rwx /<directory> //set group to rwx default
setfacl -d -m o::rx /<directory> //set other
A continuación podemos verificar:
getfacl /<directory>
Salida:
# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Esta es una adición a Chris' respuesta, se basa en mi experiencia en mi equipo Arch Linux.
Usando el interruptor por defecto (-d) y el interruptor de modificación (-m) sólo modificará los permisos por defecto pero dejará los existentes intactos:
setfacl -d -m g::rwx /<directory>
Si quiere cambiar toda la estructura de permisos de la carpeta's incluyendo los existentes (tendrá que hacer una línea extra y hacerla recursiva -R:
setfacl -R -m g::rwx /<directory>
eg.
setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else.
(CREDIT a markdwite en los comentarios para la sintaxis de la línea de revocar todos los privilegios)
Utilizando el siguiente comando puede establecer el permiso por defecto de un archivo:
chacl -R filename