13 novembro, 2006

Mudanças de permissões dos ficheiros no Linux

Todos os ficheiros de um sistema Linux tem UM dono (da lista de utilizadores do sistema, normalmente em /etc/passwd) e pertencem a UM grupo (da lista de grupos do sistema, normalmente em /etc/group). Existem permissões de leitura (r), de escrita (w) e de execução (x) para o dono (u) (user), para o grupo (g) (group), e para os outros (o) (others).


Para visualizar o dono, grupo e as permissões de um ficheiros um directório, usamos o comando "ls -l" e as suas variações (veja o comando "man ls" para as opções do comando "ls"). As permissões são mostradas como uma série de letras e traços. A primeira posição mostra se é um directório (d). Outras posições mostram as permissões do dono (u), do grupo (g) e dos outros (o), em grupos de 3, na sequência rwx (leitura, escrita e execução). Mostra ainda o nome do dono e o grupo a que pertence o ficheiro.


Para mudar as permissões do ficheiro (ou directório) usa-se o comando "chmod" (change mode) seguido das novas atribuições e o nome do(s) ficheiro(s) a serem afectados. Estas atribuições podem ser dadas como um número ou como letras.


Como números, são três dígitos que variam de 0 a 7. Um dígito para cada parte: dono (u), grupo (g) e outros (o). Cada dígito é formado pela soma das atribuições: 1 para execução (x), 2 para escrita (w) e 4 para leitura (r).


Portanto temos as seguintes possibilidades:


0 - Nenhum


1 - x -Execução


2 - w -Escrita


3 - wx -Escrita e execução


4 - r -Leitura


5 - r - x - Leitura e execução


6 - rw - Leitura e escrita


7 - rwx - Leitura, escrita e execução




Ex.: Ao executarmos "chmod 740 exemplo" o ficheiro (ou directório) "exemplo" passa a ter a permissão de leitura, escrita e execução para o dono (u), leitura para os utilizadores do grupo (g) e nenhuma permissão para pessoas fora do grupo (o).


Este comando pode também ser executado usando letras para as atribuições no formato "quem, sim ou não, o quê".


Ex.: o+r dá permissão aos outros (o) de leitura (r) do ficheiro. O comando "chmod go-w exemplo" retira a permissão de escrita (w) dos utilizadores do grupo (g) e dos outros (o) do ficheiro (ou directório) "exemplo". Existe ainda uma variação que permite activar ou desactivar para todos (a) de uma vez. Em vez de digitar "ugo", digita-se "a" (all). Outra variação permitida em todos os ficheiros dos subdirectórios recursivamente é usando a opção -R. Para ver todas as possibilidades, use o comando "man chmod".

Sem comentários: