Comando chmod
Para
a correta utilização do comando chmod e necessário um estudo
prévio sobre criação de usuários e grupos e permissões de
arquivos:
Em
sistemas operacionais Unix-like, chmod é o chamado sistema de
comando que pode alterar as permissões de acesso a objetos do
sistema de arquivos (arquivos e diretórios). Pode também alterar
bandeiras modo especiais.
O
pedido é filtrada pela umask. O nome é uma abreviatura de change
mode. [1]
Modifica
a permissão dos arquivos e diretórios. Exemplo:
chmod
a+rx Kiss (permissão de leitura e execução para todas as classes
de usuários).
Obs: o r e o x presentes no comando significam, respectivamente, leitura e execução.
Obs: o r e o x presentes no comando significam, respectivamente, leitura e execução.
Seguem-se
a representação simbólica de três papéis diferentes:
u
é para o usuário,
g
é para o grupo,
e
o é para os outros.
Seguem-se
a representação simbólica de três permissões diferentes:
r
é para permissão de leitura,
w
é para permissão de gravação,
x
é para permissão de execução
As
permissões do usuário:
No
exemplo vamos dar uma olhadinha na primeira coluna
Como
sabemos o primeiro caratere norevela se o arquivo e um arquivo comum
ou um /diretórioectory. The next letters tell the system what access
is permitted for this file; hence the name “permissions.”
No
exemplo abaixo eu acrescentei um espaço pra separar os três
primeiros digitos pra facilitar a leitura, então - = arquivo comum d
= diretorio, nas permissões do usuário temos rwx.
Acima,
joel,
o usuário que possui o arquivo, pode ler e gravar todos os arquivos.
Ele pode executar o script shell archive.sh e o programa
Motion
Mas qual é o x está fazendo no diretório de vendas? Quando um diretório tem o x ele tem permissão para executar
Mas qual é o x está fazendo no diretório de vendas? Quando um diretório tem o x ele tem permissão para executar
A
seguir estão alguns exemplos de como usar a representação
simbólica em chmod.
Como
sabemos usamos o chmod para mudar as permissõess de acesso assim:
chmod
fulano=permissões arqnome
isto
dá ao fulano permissçoes especificas para o acesso do arqnome
O
tal fulano pode assumir quatro identidades.
Letter |
Meaning |
---|---|
u
|
O
usuário |
g
|
O
grupo
|
o
|
Outros |
a
|
Todos
U G O
|
As permissões:
r
|
Permissão
para leiura → read.
|
w
|
Permissão
para escrever → write |
x
|
Permissão
para execuar |
1. Adicione única permissão para um arquivo / diretório
Mudar a permissão. O Símbolo + significa a adição de permissão. O Simbolo – retira a permissão
Por exemplo, faça o seguinte para dar permissão de execução para o usuário,
$ Chmod u + x filename → da para o usuário a permissão para e3xecutar o arquivo filename.
2. Adicione a permissão múltipla para um arquivo / diretório
Use vírgula para separar os vários conjuntos de permissões, como mostrado abaixo.
$ Chmod u + r, g + x filename → permissão para usuário ler e grupo executar.
3. Remova a permissão de um arquivo / diretório
Seguindo o exemplo remove ler e escrever permissão para o usuário.
$ Chmod u-rx filename → negando ao usuário a permissão de leitura e execução.
4. Altere a permissão para todos os papéis em um arquivo / diretório
Seguindo o exemplo atribui executar privilégio de usuário, grupo e outros (basicamente, qualquer pessoa pode executar esse arquivo).
$ Chmod a + x filename → aqui a se refere a alis = todos tem permissão para execução.
5. Permissão para fazer um arquivo igual a outro arquivo (usando de referência)
Se você quer mudar a permissão de arquivo igual a outro arquivo, use a opção de referência, como mostrado abaixo
. Neste exemplo, as permissões de file2 serão definidas exatamente iguais as permissões de file1.
$ Chmod --reference = file1 file2
6. Aplique a permissão para todos os arquivos em um diretório de forma recursiva
Use -R opção para alterar a permissão recursivamente como se mostra abaixo.
$ Chmod -R 755 Documentos /
7. Altere a permissão de execução somente nos diretórios (arquivos não são afetados)
Em um diretório específico se você tiver vários sub-diretórios e arquivos, o seguinte comando irá atribuir permissão de execução só para os subdiretórios no diretório atual (e não os arquivos no diretório atual).
$ Chmod u + X *
Let’s say we have these files: