Controle quem pode acessar arquivos, pesquisar diretórios e executar scripts usando o chmod
comando do Linux . Este comando modifica as permissões de arquivo do Linux, que parecem complicadas à primeira vista, mas na verdade são muito simples quando você sabe como funcionam.
Índice
No Linux, quem pode fazer o que em um arquivo ou diretório é controlado por conjuntos de permissões. Existem três conjuntos de permissões. Um conjunto para o proprietário do arquivo, outro conjunto para os membros do grupo do arquivo e um conjunto final para todos os outros.
As permissões controlam as ações que podem ser executadas no arquivo ou diretório. Eles permitem ou impedem que um arquivo seja lido, modificado ou, se for um script ou programa, executado. Para um diretório, as permissões governam quem pode cd
entrar no diretório e quem pode criar ou modificar arquivos dentro do diretório.
Você usa o chmod
comando para definir cada uma dessas permissões . Para ver quais permissões foram definidas em um arquivo ou diretório, podemos usar ls
.
Podemos usar a opção -l
(formato longo) para ls
listar as permissões de arquivo para arquivos e diretórios.
ls -l
Em cada linha, o primeiro caractere identifica o tipo de entrada que está sendo listada. Se for um traço ( -
), é um arquivo. Se for a letra d
, é um diretório.
Os próximos nove caracteres representam as configurações para os três conjuntos de permissões.
Existem três caracteres em cada conjunto de permissões. Os personagens são indicadores da presença ou ausência de uma das permissões. Eles são um travessão ( -
) ou uma letra. Se o personagem for um travessão, significa que a permissão não foi concedida. Se o personagem é um r
, w
ou uma x
, que a permissão foi concedida.
As letras representam:
Por exemplo:
---
significa que nenhuma permissão foi concedida.rwx
significa que todas as permissões foram concedidas. Os indicadores de leitura, gravação e execução estão todos presentes.Em nossa captura de tela, a primeira linha começa com um d
. Esta linha se refere a um diretório chamado “arquivo”. O proprietário do diretório é “dave” e o nome do grupo ao qual o diretório pertence também é chamado de “dave”.
Os próximos três caracteres são as permissões do usuário para este diretório. Isso mostra que o proprietário tem permissões totais. Os r
, w
e x
os personagens são todos os presentes. Isso significa que o usuário dave tem permissões de leitura, gravação e execução para esse diretório.
O segundo conjunto de três caracteres são as permissões do grupo, são elas r-x
. Eles mostram que os membros do grupo dave têm permissão de leitura e execução para este diretório. Isso significa que eles podem listar os arquivos e seus conteúdos no diretório e podem cd
(executar) nesse diretório. Eles não têm permissões de gravação, portanto, não podem criar, editar ou excluir arquivos.
O conjunto final de três personagens também r-x
. Essas permissões se aplicam a pessoas que não são regidas pelos dois primeiros conjuntos de permissões. Essas pessoas (chamadas de “outras”) têm permissão de leitura e execução neste diretório.
Portanto, para resumir, os membros do grupo e outros têm permissões de leitura e execução. O proprietário, um usuário chamado dave, também tem permissões de gravação.
Para todos os outros arquivos (exceto o arquivo de script mh.sh), dave e os membros do grupo dave possuem propriedades de leitura e gravação nos arquivos, e os outros têm apenas permissões de leitura.
Para o caso especial do arquivo de script mh.sh, o proprietário dave e os membros do grupo possuem permissões de leitura, gravação e execução, e os outros possuem apenas permissões de leitura e execução.
Para usar chmod
para definir permissões, precisamos dizer:
Usamos indicadores para representar esses valores e formar “declarações de permissão” curtas, como u+x
, onde “u” significa “usuário” (quem), “+” significa adicionar (o que) e “x” significa a permissão de execução (qual) .
Os valores de “quem” podemos usar são:
u
e g
.Se nenhum desses for usado, chmod
se comporta como se “ a
” tivesse sido usado.
Os valores “quais” podemos usar são:
=
opção, descrita abaixo.Os valores “quais” podemos usar são:
Digamos que temos um arquivo em que todos têm permissões totais sobre ele.
ls -l new_ file.txt
Queremos que o usuário dave tenha permissões de leitura e gravação e que o grupo e outros usuários tenham apenas permissões de leitura. Podemos fazer usando o seguinte comando:
chmod u = rw, og = r new_file.txt
Usar o operador “=” significa que eliminamos todas as permissões existentes e, em seguida, definimos as especificadas.
vamos verificar a nova permissão neste arquivo:
ls -l new_file.txt
As permissões existentes foram removidas e as novas permissões foram definidas, como esperávamos.
Que tal adicionar uma permissão sem remover as configurações de permissões existentes? Também podemos fazer isso facilmente.
Digamos que temos um arquivo de script que terminamos de editar. Precisamos torná-lo executável para todos os usuários. Suas permissões atuais são assim:
ls -l new_script.sh
Podemos adicionar a permissão de execução para todos com o seguinte comando:
chmod a + x new_script.sh
Se dermos uma olhada nas permissões, veremos que a permissão de execução agora é concedida a todos e as permissões existentes ainda estão em vigor.
ls -l new_script.sh
Poderíamos ter alcançado a mesma coisa sem o “a” na declaração “a + x”. O comando a seguir teria funcionado tão bem.
chmod + x new_script.sh
Podemos aplicar permissões a vários arquivos de uma vez.
Estes são os arquivos no diretório atual:
ls -l
Digamos que queremos remover as permissões de gravação para os “outros” usuários de arquivos com extensão “.page”. Podemos fazer isso com o seguinte comando:
chmod ou * .page
Vamos verificar o efeito que teve:
ls -l
Como podemos ver, a permissão de leitura foi removida dos arquivos “.page” para a categoria “outros” de usuários. Nenhum outro arquivo foi afetado.
Se quiséssemos incluir arquivos em subdiretórios, poderíamos ter usado a -R
opção (recursiva).
chmod -R ou * .page
Outra maneira de usar chmod
é fornecer as permissões que você deseja conceder ao proprietário, grupo e outros como um número de três dígitos. O dígito mais à esquerda representa as permissões para o proprietário. O dígito do meio representa as permissões para os membros do grupo. O dígito mais à direita representa as permissões para os outros.
Os dígitos que você pode usar e o que eles representam estão listados aqui:
Cada uma das três permissões é representada por um dos bits no equivalente binário do número decimal. Portanto, 5, que é 101 em binário, significa ler e executar. 2, que é 010 em binário, significaria a permissão de gravação.
Usando este método, você define as permissões que deseja ter; você não adiciona essas permissões às permissões existentes. Portanto, se as permissões de leitura e gravação já estivessem em vigor, você teria que usar 7 (111) para adicionar permissões de execução. Usar 1 (001) removeria as permissões de leitura e gravação e adicionaria a permissão de execução.
Vamos adicionar a permissão de leitura de volta aos arquivos “.page” para as outras categorias de usuários. Devemos definir as permissões de usuário e grupo também, portanto, precisamos defini-los como já são. Esses usuários já têm permissões de leitura e gravação, que é 6 (110). Queremos que os “outros” tenham permissão de leitura e, portanto, eles precisam ser definidos como 4 (100).
O seguinte comando fará isso:
chmod 664 * .page
Isso define as permissões que exigimos para o usuário, membros do grupo e outros para o que precisamos. Os usuários e membros do grupo têm suas permissões redefinidas para o que já eram, e os outros têm a permissão de leitura restaurada.
ls -l
Se você ler a página do manual para chmod
ver que há algumas opções avançadas relacionadas aos bits SETUID e SETGID, e à exclusão restrita ou bit “sticky”.
Para 99% dos casos de que você precisará chmod
, as opções descritas aqui irão ajudá-lo.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…