fbpx

Comandos Linux – Comando chmod

Comando Linux chmod

Atualizado: 05/04/2019 por Computer Hope

comando chmod

Nos sistemas operacionais do tipo Unix, o comando chmod define as permissões de arquivos ou diretórios .

Este documento descreve a versão GNU / Linux do chmod .

Descrição

Em sistemas operacionais do tipo Unix , um conjunto de sinalizadores associados a cada arquivo determina quem pode acessar esse arquivo e como eles podem acessá-lo. Esses sinalizadores são chamados de permissões ou modos de arquivo, como no “modo de acesso”. O nome do comando chmod significa “alterar modo”. Ele restringe a maneira como um arquivo pode ser acessado.

Para obter mais informações sobre modos de arquivo, consulte O que são permissões de arquivo e como elas funcionam? na nossa documentação do comando umask . Ele contém uma descrição abrangente de como definir e especificar permissões de arquivo.

Em geral, os comandos chmod assumem a forma:

  nome do arquivo de permissões das opções chmod

Se nenhuma opção for especificada, o chmod modifica as permissões do arquivo especificado pelo nome do arquivo para as permissões especificadas pelas permissões .

permissões define as permissões para o proprietário do arquivo (o “usuário”), membros do grupo que possui o arquivo (o “grupo”) e qualquer outra pessoa (“outros”). Há duas maneiras de representar essas permissões: com símbolos ( caracteres alfanuméricos ) ou com números octais (os dígitos de 0 a 7 ).

Digamos que você seja o proprietário de um arquivo chamado myfile e deseje definir suas permissões para que:

  1. o usuário pode ler, escrever e executar;
  2. os membros do seu grupo podem lê-lo e executá-lo; e
  3. outros podem apenas lê-lo.

Este comando fará o truque:

  chmod u = rwx, g = rx, o = r meu arquivo

Este exemplo usa notação de permissões simbólicas. As letras u , g e o representam ” usuário “, ” grupo ” e ” outro “. O sinal de igual (” = “) significa “definir as permissões exatamente assim” e as letras ” r “, ” w ” e ” x ” representam “leitura”, “gravação” e “execução”, respectivamente. As vírgulas separam as diferentes classes de permissões e não há espaços entre elas.

Aqui está o comando equivalente usando a notação de permissões octal:

  chmod 754 myfile

Aqui, os dígitos 7 , 5 e 4 representam individualmente as permissões para o usuário, grupo e outros, nessa ordem. Cada dígito é uma combinação dos números 4 , 2 , 1 e 0 :

  • 4 significa “ler”,
  • 2 significa “gravação”,
  • 1 significa “executar” e
  • 0 significa “sem permissão”.

Portanto, 7 é a combinação de permissões 4 + 2 + 1 (leitura, gravação e execução), 5 é 4 + 0 + 1 (leitura, não gravação e execução) e 4 é 4 + 0 + 0 (leitura, não escrever e não executar).

Sintaxe

  chmod [ OPÇÃO ] ... MODO [, MODO ] ... ARQUIVO ...
 chmod [ OPÇÃO ] ... ARQUIVO DE MODO OCTAL ...
 chmod [ OPÇÃO ] ... --reference = RFILE FILE ...

Opções

-c , –changesComo –verbose , mas fornece saída detalhada apenas quando uma alteração é realmente feita.
-f , –silent , –quietModo silencioso; suprima a maioria das mensagens de erro.
-v , –verboseModo verboso; enviar uma mensagem de diagnóstico para cada arquivo processado.
–no-preserve-rootNão trate ‘ / ‘ (o diretório raiz ) de nenhuma maneira especial, que é a configuração padrão.
–preserve-rootNão opere recursivamente em ‘ / ‘.
–reference = RFILEDefina permissões para corresponder às do arquivo RFILE , ignorando qualquer MODO especificado.
-R , –recursivoAltere arquivos e diretórios recursivamente.
–SocorroExiba uma mensagem de ajuda e saia.
–versãoInformações de versão de saída e saída.

Descrição técnica

O chmod altera o modo de arquivo de cada ARQUIVO especificado de acordo com MODE , que pode ser uma representação simbólica das alterações a serem feitas ou um número octal representando o padrão de bits para os novos bits de modo.

O formato de um modo simbólico é:

ugoa …] [[ + – = ] [ permanente …] …]

onde perms é zero ou mais letras do conjunto r , w , x , X , se t , ou uma única letra do conjunto u , g e o . Vários modos simbólicos podem ser dados, separados por vírgulas.

Uma combinação das letras u , g , o e os controles de acesso dos usuários ao arquivo serão alterados: o usuário que é o proprietário ( u ), outros usuários do grupo de arquivos ( g ), outros usuários que não pertencem ao arquivo grupo ( o ) ou todos os usuários ( a ). Se nada disso for dado, o efeito é como se um fosse, mas os bits definidos no umask não serão afetados.

O operador + faz com que os bits do modo de arquivo selecionado sejam adicionados aos bits do modo de arquivo existente de cada arquivo;  faz com que sejam removidos; = faz com que eles sejam adicionados e faz com que os bits não mencionados sejam removidos, exceto que os bits de ID de grupo e usuário não mencionados de um diretório não são afetados.

As letras r , w , x , X , se selecionam os bits do modo de arquivo para os usuários afetados: leitura ( r ), gravação ( w ), execução ( x ), execução somente se o arquivo for um diretório ou já tiver permissão de execução para alguns usuários ( X ), defina o ID do usuário ou grupo nas execuções, sinalizador de exclusão restrito ou bit adesivo ( t ). Para diretórios, as opções de execução X e X definem permissão para exibir o conteúdo do diretório.

Em vez de uma ou mais dessas letras, você pode especificar exatamente uma das letras u , g ou o : as permissões concedidas ao usuário que possui o arquivo ( u ), as permissões concedidas a outros usuários membros do arquivo grupo ( g ) e as permissões concedidas a usuários que não estão em nenhuma das duas categorias anteriores ( o ).

Um modo numérico é de um a quatro dígitos octais ( 0 – 7 ), derivado da soma dos bits com os valores 4 , 2 e 1 . Dígitos omitidos são assumidos como zeros à esquerda. O primeiro dígito seleciona o ID do usuário definido ( 4 ) e o ID do grupo definido ( 2 ) e os atributos de exclusão restrita ou aderente ( 1 ). O segundo dígito seleciona permissões para o usuário que possui a leitura ( 4 ), gravação ( 2 ) e execução ( 1 ); o terceiro seleciona permissões para outros usuários no grupo do arquivo, com os mesmos valores; e o quarto para outros usuários que não estão no grupo do arquivo, com os mesmos valores.

O chmod nunca altera as permissões de links simbólicos ; a chamada do sistema chmod não pode alterar suas permissões. No entanto, isso não é um problema, pois as permissões de links simbólicos nunca são usadas. No entanto, para cada link simbólico listado na linha de comando , o chmod altera as permissões do arquivo apontado. Por outro lado, o chmod ignora os links simbólicos encontrados durante as travessias recursivas do diretório.

Bits Setuid e Setgid

O chmod limpa o bit set-group-ID de um arquivo regular se o ID do grupo do arquivo não corresponder ao ID do grupo efetivo do usuário ou a um dos IDs de grupo suplementares do usuário, a menos que o usuário tenha privilégios apropriados. Restrições adicionais podem fazer com que os bits set-user-ID e set-group-ID do MODE ou RFILE sejam ignorados. Esse comportamento depende da diretiva e da funcionalidade da chamada do sistema chmod subjacente. Em caso de dúvida, verifique o comportamento do sistema subjacente.

O chmod preserva os bits set-user-ID e set-group-ID de um diretório, a menos que você especifique explicitamente o contrário. Você pode definir ou limpar os bits com modos simbólicos como u + se eg , e pode definir (mas não limpar) os bits com um modo numérico.

Sinalizador de exclusão restrita (ou “Bit Sticky”)

O sinalizador de exclusão restrita ou bit adesivo é um bit único, cuja interpretação depende do tipo de arquivo. Para diretórios, impede que usuários sem privilégios removam ou renomeiem um arquivo no diretório, a menos que sejam proprietários do arquivo ou diretório; isso é chamado de sinalizador de exclusão restrita para o diretório e geralmente é encontrado em diretórios graváveis ​​em todo o mundo como / tmp . Para arquivos regulares em alguns sistemas mais antigos, o bit salva a imagem de texto do programa no dispositivo de troca, para que seja carregado mais rapidamente quando executado; isso é chamado de bit pegajoso.

Exibindo permissões de arquivos

Uma maneira rápida e fácil de listar as permissões de um arquivo é com a opção de listagem longa ( -l ) do comando ls . Por exemplo, para visualizar as permissões de file.txt , você pode usar o comando:

  ls -l file.txt

… que exibe uma saída semelhante à seguinte:

  -rwxrw-r-- 1 hope hopestaff 123 fev 03 15:36 file.txt

Aqui está o que cada parte dessas informações significa:

O primeiro caractere representa o tipo de arquivo: ”  ” para um arquivo regular, ” d ” para um diretório, ” l ” para um link simbólico.
rwxOs próximos três caracteres representam as permissões para o proprietário do arquivo: nesse caso, o proprietário pode ler, escrever ou executar o arquivo.
rw-Os próximos três caracteres representam as permissões para os membros do grupo de arquivos. Nesse caso, qualquer membro do grupo proprietário do arquivo pode ler ou escrever no arquivo. O traço final é um espaço reservado; os membros do grupo não têm permissão para executar este arquivo.
r–As permissões para “outros” (todos os outros). Outros podem apenas ler este arquivo.
1O número de links físicos para este arquivo.
esperançaO proprietário do arquivo.
hopestaffO grupo ao qual o arquivo pertence.
123O tamanho do arquivo em blocos .
03 de fev 15:36O mtime do arquivo (data e hora em que o arquivo foi modificado pela última vez).
file.txtO nome do arquivo.

Exemplos

  chmod 644 file.htm

Defina as permissões de file.htm como “o proprietário pode ler e escrever; o grupo pode ler apenas; outros podem ler apenas”.

  chmod -R 755 myfiles

Recursivamente ( -R ) Altere as permissões do diretório myfiles e todas as pastas e arquivos que ele contém, para o modo 755 : O usuário pode ler, gravar e executar; membros do grupo e outros usuários podem ler e executar, mas não podem gravar.

  chmod u = rw exemplo.jpg

Altere as permissões para o proprietário do example.jpg para que o proprietário possa ler e gravar o arquivo. Não altere as permissões para o grupo ou para outros.

  chmod u + s comphope.txt

Defina o bit “Set-User-ID” do comphope.txt , para que qualquer pessoa que tente acessar esse arquivo o faça como se fosse o proprietário do arquivo.

  chmod us comphope.txt

O oposto do comando acima; desativa o bit SUID.

  chmod 755 file.cgi

Defina as permissões de file.cgi para “ler, gravar e executar pelo proprietário” e “ler e executar pelo grupo e todos os outros”.

  chmod 666 file.txt

Defina a permissão do arquivo.txt como “ler e escrever por todos”.

  chmod a = rw arquivo.txt

Realiza o mesmo que o comando acima, usando notação simbólica.

getfacl – exibe listas de controle de acesso a arquivos.
ls – lista o conteúdo de um diretório ou diretórios.

14 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.