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 , –changes Como –verbose , mas fornece saída detalhada apenas quando uma alteração é realmente feita.
-f , –silent , –quiet Modo silencioso; suprima a maioria das mensagens de erro.
-v , –verbose Modo verboso; enviar uma mensagem de diagnóstico para cada arquivo processado.
–no-preserve-root Não trate ‘ / ‘ (o diretório raiz ) de nenhuma maneira especial, que é a configuração padrão.
–preserve-root Não opere recursivamente em ‘ / ‘.
–reference = RFILE Defina permissões para corresponder às do arquivo RFILE , ignorando qualquer MODO especificado.
-R , –recursivo Altere arquivos e diretórios recursivamente.
–Socorro Exiba uma mensagem de ajuda e saia.
–versão Informaçõ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.
rwx Os 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.
1 O número de links físicos para este arquivo.
esperança O proprietário do arquivo.
hopestaff O grupo ao qual o arquivo pertence.
123 O tamanho do arquivo em blocos .
03 de fev 15:36 O mtime do arquivo (data e hora em que o arquivo foi modificado pela última vez).
file.txt O 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.

Categorias
Compartilhe esse post

Posts populares

Linux Force Security Cursos de linux e segurança da informação

Seu futuro na tecnologia começa agora! Não deixe essa chance escapar.