No DOS, arquivos e diretórios têm os seguintes atributos: A (arquivo), H (oculto), R (somente-para-leitura), e S (sistema). Somente H e R fazem sentido no Linux: arquivos ocultos começam com um ponto, e quanto ao atributo R, siga em frente.
No Unix, cada arquivo tem "permissões" e um dono, que por sua vez pertence a um "grupo". Veja este exemplo:
O primeiro campo contém as permissões do arquivo /bin/ls, que pertence a root, grupo bin. Deixando as informações restantes de lado, lembre-se que -rwxr-xr-x significa, da esquerda para a direita:
- é o tipo de arquivo (- = arquivo normal, d = diretório, l = link, etc); rwx são as permissões para o dono do arquivo ("read, write, execute", i.e., "leitura, gravação, execução"); r-x são as permissões para o grupo do dono do arquivo (leitura, execução); (eu não explicarei o conceito de grupo, você pode sobreviver sem isso enquanto for um iniciante ;-) r-x são as permissões para todos os outros usuários (leitura, execução).
O diretório /bin tem permissões também: veja a Seção
(Permissões de Diretórios) para mais
detalhes. É por isso que você não pode apagar o arquivo /bin/ls,
a menos que seja root: você não tem permissão para isso. Para mudar as
permissões de um arquivo, o comando é:
onde quem é u (usuário, i.e., dono), g (grupo), o (outros), X é ou + ou -, perm é r (leitura), w (gravação), ou x (execução). Alguns exemplos do uso de chmod:
isto define a permissão de execução do arquivo.
isto remove as permissões de leitura e gravação para todos, exceto o dono.
isto dá permissão de leitura, gravação e execução para todos.
isso faz um arquivo chamado "setuid" ou "suid--um arquivo que todos podem executar com os privilégios do dono. Normalmente, você encontrará arquivos setuid root; freqüentemente, são programas importantes do sistema, como o servidor X.
Uma maneira mais curta de se referir a permissões é com dígitos: rwxr-xr-x pode ser expresso como 755 (cada letra corresponde a um bit: -- é 0, -x é 1, -w- é 2, -wx é 3...). Parece difícil, mas com um pouco de prática você entenderá a idéia.
root, sendo o superusuário, pode mudar as permissões de qualquer arquivo. LPM.