Esta questão é uma boa opção para Linux acl
. Como você não indica seu sistema operacional, assumirei o Linux a seguir. Aqui está uma sessão de exemplo.
Não conheço um acl
tutorial muito bom , mas você poderia fazer pior do que http://www.vanemery.com/Linux/ACL/linux-acl.html
Observe que o padrão acl
se comporta como uma umask local. Como pelo menos no Linux, umasks são aplicadas globalmente, é a única maneira que conheço para obter o efeito de uma umask local. Por alguma razão, esse é um recurso pouco conhecido. A rede está cheia de pessoas perguntando sobre uma substituição local de umask, mas quase ninguém parece pensar em usar acl
.
Observe também que você precisa montar a partição em que está trabalhando com acl
suporte, por exemplo.
/dev/mapper/debian-acl /mnt/acl ext3 defaults,acl 0 2
A sessão segue:
/mnt/acl$ mkdir foo
/mnt/acl$ getfacl foo
# file: foo
# owner: faheem
# group: faheem
user::rwx
group::r-x
other::r-x
Defina o grupo de foo
como ser staff
e defina a ACL do grupo e o usuário de foo
como rwx
.
/mnt/acl$ chgrp staff foo
/mnt/acl$ setfacl -R -m u::rwx,g::rwx foo
/mnt/acl$ getfacl foo
# file: foo
# owner: faheem
# group: staff
user::rwx
group::rwx
other::r-x
Defina as acls padrão do usuário e do grupo rwx
também. Isso define as permissões que os arquivos e diretórios herdam foo
. Portanto, todos os arquivos e diretórios criados no foo terão permissões de grupo rw
.
/mnt/acl$ setfacl -d --set u::rwx,g::rwx,o::- foo
/mnt/acl$ getfacl foo
# file: foo
# owner: faheem
# group: staff
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::---
Agora crie alguns arquivos foo
como usuários faheem
e john
.
/mnt/acl$ cd foo
/mnt/acl/foo$ touch bar
# switch to user john for this next command.
/mnt/acl/foo$ touch baz
Listar arquivos. Observe que os arquivos pertencentes a faheem
e os arquivos pertencentes a john
são criados com permissões de grupo rw
.
/mnt/acl/foo$ ls -la
total 3
drwxrwxr-x+ 2 faheem staff 1024 May 9 01:22 .
drwxr-xr-x 4 faheem faheem 1024 May 9 01:20 ..
-rw-rw---- 1 faheem faheem 0 May 9 01:20 bar
-rw-rw---- 1 john john 0 May 9 01:22 baz