Você pode usar ACLs (listas de controle de acesso) para definir permissões de grupo adicionais, que podem ser definidas com o comando setfacl
. Por exemplo:
setfacl -dm g:apache:r /home/someuser/some_dir/subdir1/subdir2
Quando você executar um ls
nesse diretório, ele mostrará um sinal +
ao lado das permissões para indicar que uma ACL está definida:
$ ls -ld /home/someuser/some_dir/subdir1/subdir2
drwxrwxr-x+ 2 someuser somegroup 26 Oct 10 10:17 /home/someuser/some_dir/subdir1/subdir2
Você pode ver a ACL com o comando getfacl
.
$ getfacl home/someuser/some_dir/subdir1/subdir2
# file: home/someuser/some_dir/subdir1/subdir2
# owner: someuser
# group: somegroup
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:apache:r-x
default:mask::rwx
default:other::r-x
E quando arquivos e diretórios são criados, eles herdarão essas permissões:
$ cd /home/someuser/some_dir/subdir1/subdir2
$ touch moo
$ getfacl moo
# file: moo
# owner: someuser
# group: somegroup
user::rw-
group::rwx #effective:rw-
group:apache:r-x #effective:r--
mask::rw-
other::r--
As ACLs são incríveis! Eu recomendo altamente aprender mais sobre o assunto: