chmod

chmod [ugoa][+-=][rwxugost] arquivo...

Cada arquivo/diretório do sistema está alocado a um usuário (dono) e a um grupo. Isto significa que um arquivo está associado a um UID e a um GID. O UID e o GID são inicialmente herdados do usuário que cria o arquivo. Entretanto, é possível modificar o dono e o grupo de um arquivo que já existe.

O dono de um arquivo (ou de um diretório) pode definir quem tem acesso ao arquivo e qual tipo de acesso é permitido (leitura, gravação e/ou execução). Isto é chamado de permissão de acesso. O root é o único usuário do sistema que tem acesso a todos os arquivos e diretórios de todos os usuários.

São opções deste comando

A combinação das letras ugoa no comando chmod define quais os usuários estão tendo as suas permissões de acesso alteradas:

Caso não seja especificada a classe dos usuários para os quais se está alterando as permissões, o sistema usa a opção a (todos os usuários).

Deve-se usar, no comando chmod, um operador para especificar o tipo de modificação que se está fazendo nas permissões:

A combinação das letras rwxst no comando chmod especifica as permissões de acesso:

Comentários sobre as opções do comando

Por exemplo, o comando

chmod ug+rw teste.txt

define que o arquivo teste.txt pode ser lido (r) e alterado (w) pelo dono (u) e pelos usuários que são membros do mesmo grupo (g) do arquivo teste.txt.

Modo Octal

É possível também utilizar o modo octal para alterar as permissões de acesso a um arquivo. Abaixo mostramos a lista das permissões de acesso no modo octal.

Valor Octal Valor Binário
rwx
Significado
0 000 nenhuma permissão de acesso
1 001 permissão de execução (x)
2 010 permissão de gravação (w)
3 011 permissão de gravação e execução(wx)
4 100 permissão de leitura (r)
5 101 permissão de leitura e execução (rx)
6 110 permissão de leitura e gravação (rw)
7 111 permissão de leitura, gravação e execução (rwx)

Um exemplo do comando chmod usando a tabela acima é

chmod 764 teste.txt

Neste exemplo temos permissão de leitura, gravação e execução (7) para o dono do arquivo teste.txt, temos permissão para leitura e gravação (6) para os membros do grupo do arquivo e permissão de apenas leitura (4) para os outros usuários do sistema.

Os números octais são interpretados da direita para a esquerda, portanto o comando

chmod 64 teste.txt

define permissão de leitura (4) para os outros usuários do sistema e permissão de leitura e gravação (6) para os usuários do mesmo grupo do arquivo teste.txt.

Podemos também usar o modo octal para definir as permissões especiais.

Valor Octal Valor Binário
ugo
Significado
0 000 nenhuma permissão especial
1 001 sticky bit
2 010 SGID
3 011 SGID e sticky bit
4 100 SUID
5 101 SUID e sticky bit
6 110 SUID e SGID
7 111 SUID, SGID e sticky bit

No comando chmod, as permissões especiais, no modo octal, são definidas antes das permissões do dono, do grupo e do resto dos usuários. Por exemplo,

chmod 4760 teste.txt

define que o arquivo teste.txt é um arquivo SUID (4) com permissões 7, 6 e 0 para o dono, para os membros do grupo e para o resto dos usuários do sistema, respectivamente.