Como usar o comando chmod no Linux

Conteúdo

Indicador de terminal estilizado em um laptop Linux

Controlar quem pode acessar arquivos, encontre diretórios e execute scripts usando Linux chmod comando. Este comando modifica as permissões de arquivo do Linux, que parecem complicados à primeira vista, mas eles são bastante simples, uma vez que você sabe como funcionam.

chmod modifica as permissões do arquivo

En Linux, quem pode fazer o quê com 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 realizadas no arquivo ou diretório. Ativar ou impedir que um arquivo seja lido, modificado o, se é um script ou programa, executado. Para um diretório, regras de permissões quem pode cd 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 veja quais permissões foram definidas em um arquivo ou diretório, podemos usar ls.

Ver e entender as permissões de arquivo

Podemos usar o -l (formato longo) opção de ter ls listar 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 é um script (-) é um arquivo. Se é a carta d é um diretório.

Os próximos nove caracteres representam as configurações para os três conjuntos de permissões.

  • Os primeiros três caracteres mostram as permissões do usuário que possui o arquivo (Autorizações de usuário).
  • Os três caracteres do meio mostram as permissões para os membros do grupo do arquivo (permissões de grupo).
  • Os últimos três caracteres mostram as permissões para qualquer pessoa que não esteja nas duas primeiras categorias (outras permissões).

Existem três personagens em cada conjunto de permissões. Os caracteres são indicadores da presença ou ausência de uma das permissões. Eles são um script (-) ou uma carta. Se o personagem é um script, significa que a permissão não foi concedida. Se o personagem é um r, w, ou um x, essa permissão foi concedida.

As letras representam:

  • r: Permissões de leitura. O arquivo pode ser aberto e seu conteúdo pode ser visto.
  • C: Permissões de gravação. O arquivo pode ser editado, modificar e deletar.
  • X: Permissões de execução. Se o arquivo for um script ou um programa, pode ser executado (corre).

Como um exemplo:

  • --- significa que nenhuma permissão foi concedida.
  • rwx significa que todas as permissões foram concedidas. Indicadores de leitura, escrita e execução estão todas presentes.

Em nossa imagem, a primeira linha começa com um d. Esta linha refere-se 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 “Dave”.

Os próximos três caracteres são as permissões do usuário para este diretório. Eles mostram que o proprietário tem todas as permissões. a r, w, e x todos os personagens estão presentes. Isso significa que o usuário dave tem permissões de leitura, escrever e executar para esse diretório.

O segundo conjunto de três caracteres são as permissões do grupo, estes são r-x. Eles mostram que os membros do grupo dave leram e executaram permissões para este diretório. Isso significa que eles podem listar os arquivos e seu conteúdo no diretório, e pode cd (corre) naquele diretório. Eles não têm permissão de gravação, então eles não podem criar, editar ou excluir arquivos.

O conjunto final de três personagens além r-x. Essas permissões se aplicam a pessoas que não são regidas pelos dois primeiros conjuntos de permissões. Estas pessoas (chamadas “outros”) ter permissões de leitura e execução neste diretório.

Então, para resumir, membros do grupo e outros têm permissão 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 (além do arquivo de script mh.sh), Dave e membros do grupo de Dave leram e gravaram propriedades nos arquivos, e os outros só têm permissão de leitura.

Para o caso especial do arquivo de script mh.sh, o dono dave e os membros do grupo têm permissão de leitura, escrita e execução, e os outros só têm permissão de leitura e execução.

Compreender a sintaxe de permissão

Usar chmod para determinar as permissões, nós precisamos te contar:

  • QUEM: Para quem estamos definindo permissões?.
  • Este: Que mudança estamos fazendo? Estamos adicionando ou removendo permissão?
  • Que: Quais das permissões estamos definindo?

Utilizamos indicadores para representar esses valores e formar breves “declarações de permissão” O que u+x, Onde “você” Isso significa “Nome do usuário” (quem), “+” significa adicionar (naquela) e “x” significa permissão de execução (que).

Os valores de “quem” o que podemos usar são:

  • sua: Do utilizador, Em outras palavras, o dono do arquivo.
  • grama: Grupo, Em outras palavras, membros do grupo ao qual o arquivo pertence.
  • o: Outros, Em outras palavras, pessoas que não são governadas por u e g permitem.
  • uma: Tudo, Em outras palavras, todo o interior.

Se nenhum desses for usado, chmod se comporta como se “a” Foi usado.

Os valores de “naquela” podemos usar são:

  • : Menos. Remover permissão.
  • +: Sinal de mais. Conceder permissão. A permissão é adicionada às permissões existentes. Se você deseja ter esta permissão e apenas este conjunto de permissões, Use o = opção, Descrito abaixo.
  • =: Sinal de igual. Defina uma permissão e remova outras.

o “naquela” valores que podemos usar são:

  • r: Permissão de leitura.
  • C: Permissão de escrita.
  • X: Permissão de execução.

Determinar e modificar as permissões

Digamos que temos um arquivo onde todos têm permissões totais.

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 isso usando o seguinte comando:

chmod u = rw,e = r new_file.txt

O uso do operador “=” significa que removemos as permissões existentes e depois definimos as especificadas.

vamos verificar a nova permissão neste arquivo:

ls -l new_file.txt

As permissões existentes foram removidas e novas permissões foram definidas, como esperávamos.

Que tal adicionar uma permissão? sem Limpar as configurações de permissão 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 licenças existentes ainda estão em vigor.

ls -l new_script.sh

Poderíamos ter conseguido o mesmo sem o “uma” na declaração “uma + x”. O seguinte comando teria funcionado tão bem.

chmod + x new_script.sh

Determinar permissões para vários arquivos

Podemos aplicar permissões a vários arquivos ao mesmo tempo.

Estes são os arquivos no diretório atual:

ls -l

Digamos que queremos excluir as permissões de leitura do “outro” usuários de arquivos que possuem uma extensão “.página”. Podemos fazer isso com o seguinte comando:

chmod o-r * .page

Vamos ver o efeito que isso teve:

ls -l

Como podemos ver, a permissão de leitura foi removida dos arquivos “.página” para a categoria “outro” de usuários. Nenhum outro arquivo foi afetado.

Se quiséssemos incluir arquivos em subdiretórios, poderíamos ter usado o -R opção (recursivo).

chmod -R o-r * .page

Taquigrafia numérica

Outra maneira de usar chmod é fornecer as permissões que você deseja conceder ao proprietário, grupo e outras pessoas como um número de três dígitos. O dígito mais à esquerda representa as permissões do proprietário. O dígito do meio representa as permissões para 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:

  • 0: (000) Sem permissão.
  • 1: (001) Permissão de execução.
  • 2: (010) permissão de escrita.
  • 3: (011) Gravar e executar permissões.
  • 4: (100) Permissão de leitura.
  • 5: (101) Ler e executar permissões.
  • 6: (110) Permissões de leitura e gravação.
  • 7: (111) Leitura, escrever e executar permissões.

Cada uma das três permissões é representada por um dos bits no binário, como o número decimal. Então, 5, o que é 101 em binário, significa ler e executar. 2, o que é 010 em binário, significaria permissão de escrita.

Com este método, defina as permissões que deseja ter; não adicione essas permissões às permissões existentes. Então, se as permissões de leitura e gravação já estivessem em vigor, Eu teria que usar 7 (111) para adicionar permissões de execução. O uso de 1 (001) Gostaria de remover as permissões de leitura e gravação e adicionar a permissão de execução.

Vamos adicionar permissão de leitura aos arquivos “.página” para categoria de outros usuários. Devemos também configurar as permissões de usuário e grupo, então devemos configurá-los no que eles já são. Esses usuários já têm permissões de leitura e gravação, que são 6 (110). Nós queremos o “outro” ter permissões de leitura e, por isso, deve ser estabelecido em 4 (100).

O seguinte comando irá realizar isso:

chmod 664 *.página

Isso define as permissões que exigimos para o usuário, membros do grupo e outros nos quais exigimos. As permissões dos usuários e membros do grupo são redefinidas para o que já eram, e a permissão de leitura dos outros é redefinida.

ls -l

Opções avançadas

Se você leia a página de manual por chmod Você verá que existem algumas opções avançadas associadas aos bits SETUID e SETGID, e com apagamento ou bit restrito “apegado”.

Para o 99% dos casos, vai precisar chmod para, as alternativas descritas aqui irão ajudá-lo.

setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.