As colunas de permissão na saída ls
formam três grupos: u ser, g e o . Cada grupo corresponde a uma classe de usuários: o proprietário do arquivo, outros usuários além do proprietário que estão no grupo do arquivo¹ e todos os outros. Você pode defini-los com chmod
, especificando as três colunas na ordem:
chmod u=rwx,g=r-x,o=r-x somefile
Você pode escrever as partes em uma ordem diferente, por exemplo %código%. É comum usar a mesma ordem que na saída chmod o=r-x,u=rwx,g=r-x somefile
apenas para ser consistente.
Você também pode passar modos numéricos. Eles são mais fáceis de digitar, mas você precisa saber como eles funcionam. Cada dígito corresponde a um dos grupos; adicione 1 para ls -l
, 2 para x
e 4 para w
. Por exemplo, 7 é tudo; 5 é lido e executado, mas não é escrito.
chmod 755 somefile
Wikipedia e muitos outros documentos sobre permissões de arquivos unix têm todos os detalhes.
Você pode salvar e restaurar permissons com o getfacl e setfacl utilitários. Eles são exagerados em casos simples como esse, mas eles podem processar um diretório inteiro de uma só vez e eles lidam com listas de controle de acesso além de permissões básicas de arquivo.
getfacl file1 file2 >permissions.txt
…
setfacl --restore=permissions.txt
¹ Tecnicamente, processa cujo GID efetivo ou um de cujos GIDs suplementares é o grupo que possui o arquivo. Sim, não se preocupe com isso por agora.