Isso geralmente é feito usando grupos.
Propriedade
Os arquivos têm dois proprietários: um usuário e um grupo. Por exemplo:
$ ls -l file1.txt
-rw-rw-r-- 1 foo foo 6 Nov 9 15:37 file1.txt
Aqui, o usuário e o grupo são ambos foo
.
Podemos alterar a propriedade de arquivos usando
chown . Observe que o link está vinculado a uma página de manual do Linux, mas chown
é bastante padronizado, então provavelmente funcionará. Em caso de dúvida, consulte o manual do seu sistema operacional ( man chown
).
Por exemplo, alterando o grupo para bar
:
$ chown :bar file1.txt
$ ls -l file1.txt
-rw-rw-r-- 1 foo bar 6 Nov 9 15:37 file1.txt
Observe que o grupo bar
precisa existir. Mais abaixo, você verá como adicionar novos grupos.
Permissões
As permissões são as seguintes:
-rw-rw-r--
Tuuugggooo
onde T
é o tipo; para arquivos normais isso é -
, para diretórios d
, para links simbólicos l
etc.
As uuu
são as permissões do usuário: rw-
: ler, gravar. As permissões do grupo ggg
também são rw-
. Todos os outros ( ooo
) recebem r--
ou acesso somente leitura.
Podemos alterar as permissões usando o chmod (novamente, uma página do Linux, mas chmod é bastante normal). Se quiséssemos remover a permissão de gravação do grupo bar
do arquivo, poderíamos fazer:
$ chmod g-w file1.txt
$ ls -l file1.txt
-rw-r--r-- 1 foo bar 6 Nov 9 15:37 file1.txt
Adicionando um novo grupo
Você pode adicionar um grupo especificamente para gerenciar o acesso a alguns arquivos. Como isso é feito depende da plataforma. Para Linux, há addgroup :
addgroup bar
Para o FreeBSD, existe pw . Verifique o manual do seu sistema operacional para o comando correto para usar!
Adicionando usuários aos grupos
Novamente, isso depende da plataforma. Para o FreeBSD, o comando pw
mencionado acima trata disso. Para Linux, é usermod .
Os usuários normalmente têm um grupo principal (ou inicial) e secundário (ou suplementar). O grupo primário é usado quando novos arquivos são criados.
Para o Linux, adicionar ( -a
) usuário foo
ao grupo secundário ( -G
) bar
é feito assim:
$ usermod -G bar -a foo
Agora, na próxima vez que o usuário foo
fizer login, seus grupos serão atualizados. Use o comando id
( ID do Linux / FreeBSD id : bonito padrão) para inspecionar os membros do grupo:
$ id
uid=1000(foo) gid=1000(foo) groups=1000(foo),1001(bar)