Comandos chmod do Ubuntu. Chmod: alterar permissões

Em nossa documentação do umask comando. Ele contém uma descrição abrangente de como definir e especificar permissões de arquivo.

Em geral, chmod comandos assumem a forma:

chmod opções permissões nome do arquivo

se não opções são especificados, chmod modifica as permissões do arquivo especificado por nome do arquivoàs permissões especificadas por 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"). Existem duas maneiras de representar essas permissões: com símbolos (caracteres alfanuméricos), ou com números octais (os dígitos 0 Através dos 7 ).

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

  1. a você ser pode r cabeça, W rito, e x ecute-o;
  2. membros do seu g lata de linha r ead e e x ecute-o; e
  3. o só podem r Leia-o.

Este comando fará o truque:

Chmod u=rwx,g=rx,o=r meuarquivo

Este exemplo usa a notação de permissões simbólicas. As cartas você, g, e o apoiar" do utilizador", "grupo", e " outro".o sinal de igual(" = ") significa "defina as permissões exatamente assim", e as letras " r", "W", e " x" significa "ler", "escrever" e "executar", 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 meuarquivo

Aqui os números 7 , 5 , e 4 cada um representa 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 "escrever",
  • 1 significa "executar" e
  • 0 significa "sem permissão".

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

Sintaxe

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

Opções

-c, --mudanças

Como --verbose, mas fornece saída detalhada somente quando uma alteração é realmente feita.

-f, --silencioso, --tranquilo

Modo silencioso; suprimir a maioria das mensagens de erro.

-v, --verbose

modo detalhado; emite uma mensagem de diagnóstico para cada arquivo processado.

--no-preserve-root

Exiba uma mensagem de ajuda e saia.

O proprietário do arquivo.

cajado

O grupo ao qual o arquivo pertence.

03 de fevereiro 15:36

O arquivo "s mtime (data e hora em que o arquivo foi modificado pela última vez).

arquivo.txt

O nome do arquivo.

Exemplos

arquivo chmod 644.htm

Defina as permissões de arquivo.htm para "o proprietário pode ler e escrever; o grupo pode ler apenas; outros podem apenas ler".

Chmod -R 755 meusarquivos

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

Chmod u=rw exemplo.jpg

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

Chmod u+s comphope.txt

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

Chmod u-s comphope.txt

O oposto do comando acima; desativa o bit SUID.

Arquivo Chmod 755.cgi

Defina as permissões de arquivo.cgi para "ler, escrever e executar pelo proprietário" e "ler e executar pelo grupo e todos os outros".

Chmod 666 arquivo.txt

Defina a permissão de arquivo.txt para "ler e escrever por todos.".

Chmod a=rw arquivo.txt

Realiza a mesma coisa que o comando acima, usando notação simbólica.

comandos relacionados

chown- Altere a propriedade de arquivos ou diretórios.
getfacl- Exibir listas de controle de acesso a arquivos.
ls- Liste o conteúdo de um diretório ou diretórios.

Alterar permissões de arquivo

Sintaxe:

chmod[-fv] [-R [-H | -L | -P]] arquivo de modo ... chmod[-fv] [-R [-H | -L | -P]] [-a | +a | =a] arquivo .ACE ... chmod[-fhv] [-R [-H | -L | -P]] [ ACL_Option] Arquivo ...

Opções:

-R Recursão. Usado para pastas. Altera os direitos não apenas para o objeto especificado, mas para todos aninhados nele
-R -H Siga links simbólicos em linha de comando. Links simbólicos não são processados ​​por padrão.
-R -L Todos os links simbólicos serão processados
-R -P A árvore de links não será processada. A configuração padrão.
-v Verboso. Mostra todos os arquivos que foram modificados
-v -v modo muito detalhado. As permissões antigas e novas serão exibidas no modo de exibição octal (numérico) e alfabético
-f não exibe mensagens de diagnóstico se não for possível alterar as permissões do arquivo
ACL_Option(ACL - listas de controle de acesso para grupos de usuários) ACL_manipulation_options

Direitos de acesso:

As permissões podem ser especificadas em código alfabético ou com base numérica sistema octal acerto de contas

Gestão via autorização numérica:

Três bits são usados ​​para gerenciamento de direitos

  • o primeiro é o direito de ler
  • o segundo é o direito de escrever
  • o terceiro é o direito de executar
pouco a pouco Número Código da letra descrição da lei
000 0 sem direitos
001 1 direito de realizar
010 2 direito de gravação
011 3 direito de gravar e executar
100 4 direito somente leitura
101 5 o direito de ler e executar
110 6 permissão de leitura e gravação sem execução
111 7 todos os direitos

Essas permissões de arquivo são definidas para três tipos de acesso:

  • para o proprietário
  • para um grupo
  • para os outros

Como resultado, o comando fica assim:

$ chmod 444 arquivo - permissão somente leitura para todos

$ chmod 755 arquivo - o proprietário tem todos os direitos (7), outros usuários apenas lêem e executam (5)

$ chmod 066 arquivo - o proprietário não tem direitos sobre o arquivo (0), todos os outros têm o direito de ler e escrever sem executar

Gestão por indicação literal dos direitos de acesso:

Formato para especificar direitos por código de caractere

[quem...][[+-=][direitos...]...][,...]

quem é uma combinação de caracteres "ugoa" apontando para Comercial cujas permissões para acessar o arquivo ou pasta serão alteradas

  • u proprietário do usuário
  • grupo de usuários g
  • o outros usuários
  • a (todos) para todos, semelhante a ugo

O comando chmod é usado para alterar as permissões de arquivos ou diretórios.

No Linux e outros semelhantes ao Unix sistemas operacionais para cada arquivo há um conjunto de regras que determinam quem e como pode acessar esse arquivo. Essas regras são chamadas de permissões de arquivo ou modos de arquivo. O nome do comando chmod significa "modo de mudança" e é usado para determinar como um arquivo é acessado.

Em geral, os comandos chmod são assim:

opções de permissão chmod nome do arquivo

Se um opções não especificado, chmod altera as permissões do arquivo especificado em nome do arquivo, para as permissões especificadas em permissões.

Permissões definir direitos de acesso para o proprietário do arquivo ("usuário"), membros do grupo que possui o arquivo ("grupo") e todos os demais ("outros"). Existem duas maneiras de representar essas permissões: usando símbolos (caracteres alfanuméricos) ou números octais (números de 0 a 7).

Digamos que você possua um arquivo chamado myfile e queira definir suas permissões para que:

  1. do utilizador ( você ser) sabia ler ( r ler), escrever ( W rito) e executar ( x ecute) ele;
  2. membros do grupo ( g linha) pode ler ( r ead) e execute ( x ecute) ele;
  3. assim como outros ( o thers) só pode ler ( r leia) ele.

Este comando ficará assim:

chmod u=rwx,g=rx,o=r meuarquivo

Este exemplo usa uma entrada simbólica para permissões. As letras u, g e o significam usuário, grupo e outros. O sinal de igual ("=") significa "definir permissões como esta" e as letras "r", "w" e "x" significam "ler", "escrever" e "executar", respectivamente. Vírgulas separadas várias aulas permissões e não há espaços entre elas.

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

chmod 754 meuarquivo

Aqui, os números 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 "escrever",
  • 1 significa "executar",
  • 0 significa "sem permissão".

Portanto, 7 é uma combinação de permissões 4 + 2 + 1 (ler, escrever e executar), 5 é 4 + 0 + 1 (ler, não gravar e executar) e 4 é 4 + 0 + 0 (ler, não escrever e não executar).

Sintaxe chmod

chmod ... MODE[,MODE]... FILE... chmod ... OCTAL-MODE FILE... chmod ... --reference=RFILE FILE...

opções de chmod

-c, --mudanças Como --verbose, mas só produz uma saída detalhada quando uma alteração é realmente feita.

-f, --silencioso, --tranquilo Modo silencioso; suprimir a maioria das mensagens de erro.

-v, --verbose Modo de detalhe; emita uma mensagem de diagnóstico para cada arquivo processado.

--no-preserve-root Não trate "/" (diretório raiz) de nenhuma maneira especial, que é a configuração padrão.

--preserve-root Não trabalhe recursivamente em "/".

--referência=RFILE Defina as permissões para corresponder às do arquivo RFILE, ignorando qualquer MODE especificado.

-R, --recursivo Altere arquivos e diretórios recursivamente.

--ajuda Mostrar mensagem de ajuda e sair.

--versão Exiba as informações da versão e saia.

Descrição técnica

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

Formato do modo simbólico:

[[+-=]...]

onde perms é zero ou mais letras do conjunto r, w, x, X, s e t, ou uma letra do conjunto u, g e o. Você pode especificar vários modos de caracteres separados por vírgulas.

Uma combinação das letras u, g, o e controles que alterarão o acesso dos usuários ao arquivo: o usuário que o possui (u), outros usuários no grupo do arquivo (g), outros usuários que não estão no grupo do arquivo ( o), ou todos os usuários (a). Se nenhum deles for fornecido, o efeito será como se a fosse fornecido, mas os bits definidos em umask não serão afetados.

O operador (+) faz com que os bits de modo de arquivo selecionados sejam adicionados aos bits de modo de arquivo existentes de cada arquivo; "-" faz com que eles sejam excluídos; e "=" faz com que eles sejam adicionados e faz com que os bits não mencionados sejam removidos, exceto que os bits de diretório definidos pelo usuário imutáveis ​​e os identificadores de grupo não são afetados.

As letras r, w, x, X, s e t selecionam os bits do modo de arquivo para os usuários afetados: ler (r), escrever (w), executar (x), executar somente se o arquivo for um diretório ou já tiver permissão para executar para algum usuário (X) defina o ID do usuário ou grupo ao executar (s), sinalizador de exclusão restrita ou bit fixo (t). Para diretórios, as opções de execução X e X determinam a permissão para visualizar o conteúdo do diretório.

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

O modo numérico é de um a quatro dígitos octais (0-7) obtidos pela adição de bits com valores 4, 2 e 1. Os dígitos ausentes são considerados zeros à esquerda. O primeiro dígito seleciona o id de usuário fornecido (4) e o id de grupo fornecido (2) e a exclusão restrita ou atributos fixos (1). O segundo dígito seleciona os direitos de acesso para o usuário que possui as operações de leitura (4), gravação (2) e execução (1); o terceiro seleciona permissões para outros usuários do grupo do arquivo com os mesmos valores; e um quarto para outros usuários fora do grupo do arquivo, com os mesmos valores.

chmod nunca altera as permissões em links simbólicos; a chamada de sistema chmod não pode alterar suas permissões. Mas isso não é um problema, pois as permissões de link simbólico nunca são usadas. No entanto, para cada link simbólico especificado na linha de comando, chmod altera as permissões no arquivo especificado. Em contraste, chmod ignora links simbólicos encontrados durante travessias recursivas de diretório.

Bits Setuid e Setgid

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

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

Sinalizador de remoção limitada (ou "Sticky Bit")

O sinalizador de exclusão restrita, ou sticky bit, é um único bit cuja interpretação depende do tipo de arquivo. Isso evita que um arquivo em um diretório seja excluído ou renomeado por usuários que não possuem o arquivo ou diretório; isso é chamado de sinalizador de exclusão limitada para um diretório e é comumente encontrado em diretórios graváveis ​​globalmente, como /tmp. Para arquivos regulares em alguns sistemas mais antigos, esse bit salva a imagem de texto do programa no dispositivo de troca, para que ele seja carregado mais rapidamente na inicialização; isso é chamado de bit pegajoso.

Como visualizar as permissões de arquivo

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

Ls -l arquivo.txt

Que exibirá uma saída que se parece com isso:

exemplos de chmod

arquivo chmod 644.htm

Define as permissões para o arquivo file.htm “o proprietário pode ler e escrever; o grupo só sabe ler; outros só podem ler."

Chmod -R 755 meusarquivos

Recursivamente (-R) altera as permissões no diretório myfiles e todas as suas pastas e arquivos para o modo 755. O usuário pode ler, escrever e executar; membros do grupo e outros usuários podem ler e executar, mas não podem escrever.

Chmod u=rw exemplo.jpg

Altera as permissões no proprietário de example.jpg para que o proprietário possa ler e gravar o arquivo. Não altera as permissões do grupo ou de outras pessoas.

Chmod u+s comphope.txt

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

Chmod u-s comphope.txt

O oposto do comando acima; limpa o bit SUID

Arquivo Chmod 755.cgi

Define as permissões para file.cgi como "ler, escrever e executar pelo proprietário" e "ler e executar por grupo e todos os outros".

Chmod 666 arquivo.txt

Define a permissão de file.txt para "ler e escrever por todos".

Chmod a=rw arquivo.txt

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

Comandos relacionados

chown- Altere o proprietário de arquivos ou diretórios.
getfacl- Mostrar listas de controle de acesso a arquivos.
ls- Liste o conteúdo de um diretório ou diretórios.

(O valor inicial das permissões de arquivo é rwxrwxrwx - controle total para todos) Revogue a permissão para executar um arquivo para todos os usuários e grupos:

$ chmod arquivo a-x(rw-rw-rw-)

Cancele a gravação em um arquivo por um grupo e outros usuários:

$ chmod go-w arquivo (rw-r–r–)

Permissão de execução de arquivo pelo proprietário:

$ chmod u+x arquivo (rwxr–r–)

Dando ao grupo os mesmos direitos de acesso que o proprietário do arquivo:

$ chmod g=u arquivo (rwxrwxr–)

Cancele a leitura e gravação em um arquivo por usuários do grupo e outros usuários:

$ chmod go-rw arquivo (rwx-x-)

Exemplos de uso do comando chmod no modo absoluto

Permissão para ler, escrever, executar o arquivo arquivo por todos os usuários e grupos (controle total):

arquivo $ chmod 777 (rwxrwxrwx)

Configurando permissões de leitura e gravação para proprietário, grupo e outros usuários:

$ chmod 666 arquivo (rw-rw-rw-)

Configurando acesso total ao arquivo para o proprietário e acesso somente leitura para o grupo e outros usuários:

arquivo $ chmod 744 (rwxr-r-)

Definindo acesso total ao arquivo para o proprietário do arquivo e negando acesso ao grupo e a outros usuários:

$ arquivo chmod 700 (rwx--)

Defina permissões de leitura/gravação para o proprietário do arquivo e permissões somente leitura para o grupo e outros:

$ arquivo chmod 644 (rw-r–r–)

Defina permissões de leitura e gravação para o proprietário de um arquivo e seu grupo e negue o acesso a outras pessoas:

arquivo $ chmod 640 (rw-r--)

Configurando o acesso ao arquivo com permissão de leitura para todos os usuários e grupos:

$ arquivo chmod 444 (r–r–r–)

Permissões de arquivo para leitura, gravação, execução por proprietário e leitura, execução por grupo e outros:

arquivo $ chmod 755 (rwxr-xr-x)

Permitindo acesso de leitura e execução ao arquivo para o usuário e outros, e negando acesso para o grupo:

$ arquivo chmod 505 (r-x-r-x)

Se você deseja atribuir permissões a todos os arquivos no diretório atual, basta colocar um * (asterisco) após as permissões atribuídas:

$ chmod 755 *

Como resultado da execução deste comando, o proprietário receberá direitos totais (ler, modificar, executar) em todos os arquivos no diretório atual, enquanto o grupo e outros usuários receberão apenas ler e executar. Se você quiser que suas ações se propaguem recursivamente (incluindo todos os subdiretórios), use a opção -R:

$ chmod -R 777 *

O resultado da execução do comando acima será "percorrer" recursivamente todos os subdiretórios do diretório atual e atribuir acesso total a todos os usuários e grupos. Este artigo cobre apenas alguns exemplos de como usar o comando chmod. Se você quiser saber mais sobre como o comando chmod funciona e as permissões do Linux, confira este artigo.

Alterar permissões apenas para diretórios (recursivamente)

$ find /path/to/base/dir -type d -exec chmod 755() +

$ chmod 755 $(encontrar /path/to/base/dir -type d)

$ chmod 755 `encontrar /path/to/base/dir -type d`

$ find /path/to/base/dir -type d -print0 | xargs -0 chmod 755

Alterar permissões apenas para arquivos (recursivamente)

$ find /path/to/base/dir -type f -exec chmod 644 () +

$ chmod 644 $(encontrar /path/to/base/dir -type f)

$ chmod 0755 `find./ -type f`

$ find /path/to/base/dir -type f -print0 | xargs -0 chmod 644

Sintaxe Chmod para pastas e arquivos

Vamos primeiro entender a essência do problema com o Chmod para entender o que exatamente e como configuramos. Então vamos começar. As permissões são divididas em Chmod para arquivos e Chmod para diretórios. Eles são designados da mesma forma, mas significam um pouco diferente.

Os direitos de acesso (Chmod) aos arquivos são divididos em:

    r - o direito de ler dados.

    w - o direito de alterar o conteúdo (escrever - apenas alterar o conteúdo, mas não excluir).

    x - o direito de executar o arquivo.

Vamos nos debruçar um pouco mais sobre o direito de executar um arquivo. O fato é que no linux (Unix), qualquer arquivo pode ser executado. Se é um executável é determinado não por sua extensão (o conceito de extensão está ausente em sistema de arquivo Unix) e para permissões Chmod. Se um arquivo tiver a permissão “X” (chmod x) definida, significa que ele pode ser executado para execução.

Agora sobre os direitos de acesso (Chmod) à pasta (diretório):

    r - o direito de ler o diretório (você pode ler o conteúdo do diretório, ou seja, obter uma lista de objetos nele)

    w - o direito de alterar o conteúdo do diretório (você pode criar e excluir objetos neste diretório e, se tiver permissão de gravação, poderá excluir até mesmo os arquivos que não pertencem a você)

    x - o direito que permite que você entre no diretório (esse direito é sempre verificado primeiro, e mesmo se você tiver todos os direitos necessários para um objeto que está enterrado profundamente na cadeia de diretórios, mas não tem o direito "X" para acessar pelo menos um diretório no caminho para este arquivo, você nunca chegará a ele)

NO sistemas linux(Unix) todos esses direitos são concedidos pelo administrador principal do computador, acesso ao qual ele obtém digitando uma senha. E se a maioria dos objetos tiver direitos de acesso somente leitura (Chmod), não haverá praticamente nada para os vírus fazerem em tal computador. eles não poderão se registrar lá, nem então serem cumpridos. É esse resultado que precisamos alcançar definindo direitos de acesso (Chmod) aos objetos do nosso site.

Sintaxe Chmod para grupos de usuários

As próprias permissões (Chmod) são divididas em três categorias, dependendo de quem está acessando o objeto:

    "usuário" - u (proprietário direto do arquivo)

    "grupo" - g (membro do mesmo grupo que o proprietário)

    "mundo" - o (todos os outros)

O servidor determina a qual grupo de usuários você pertence quando você se conecta ao servidor. Quando você se conecta a um servidor via FTP, por exemplo, você faz login com seu nome de usuário (e senha) e o servidor então o atribui ao grupo “usuário” (“u)”. Outros usuários que também se conectarem via FTP ao servidor serão atribuídos ao grupo “grupo” (“g”), e o usuário que acessar seu site usando seu navegador se enquadra no grupo “mundo” (“o”).

Variações dos três valores possíveis "r", "w" e "x" para as três categorias "u", "g" e "o" definem Chmod para arquivos. Se uma categoria não for especificada, ela será substituída por um hífen "-". direitos de acesso (Chmod) são especificados sequencialmente na ordem dada:

    primeiros direitos para o proprietário - "u"

    então para o grupo - "g"

    e no final do direito para todos os outros - "o"

Depois que o servidor designa o usuário para certo grupo, concede a ele o direito de agir em objetos, após o qual o usuário poderá ler, escrever ou executar o arquivo (dependendo do que seu grupo tem permissão para fazer com esse objeto). Para ver o conteúdo de uma pasta, ela deve ter o atributo read "r" (para o grupo ao qual o servidor atribuiu o usuário). Para criar um arquivo ou pasta em um existente, ele deve ter o atributo Chmod definido para a entrada "w".

Para maior clareza, vejamos um exemplo em que o proprietário do arquivo ("usuário" - "u") tem todos os direitos: o direito de ler, gravar e executar, e todos os outros usuários têm apenas o direito de ler. Essa entrada Chmod ficaria assim: "rwx r-- r--". Vamos considerá-lo em detalhes: "rwx" (esta entrada define os direitos do objeto para o proprietário - "u"), "r--" (esta entrada define os direitos do mesmo objeto, mas se o usuário for atribuído por o servidor para o grupo - "g "), "r--" (esta entrada define os direitos do objeto para todos os outros usuários - o").

Qual é a diferença entre arquivos e pastas Chmod

Nada pode ser feito

O acesso ao diretório e seus subdiretórios é negado

Pode ver e editar conteúdo

Pode adicionar, excluir, alterar o arquivo de pasta

Executar se o arquivo for binário

O usuário pode executar um arquivo binário que ele sabe que existe, é proibido acessar ou ler o diretório

Chmod Sintaxe Numérica (777)

Você pode ver que aqui os registros usando letras e hífens latinos são usados ​​para descrever direitos de acesso, mas você provavelmente já se deparou com o fato de que o Chmod geralmente é definido em formato digital, por exemplo, a conhecida combinação: Chmod 777, permitindo tudo e todo mundo. De fato, os direitos de acesso (Chmod) também são indicados por números:

    w (registro) é substituído por 2

    x (execução) é substituído por 1

0 significa não fazer nada (o que é indicado por um hífen na notação alfabética) Vamos voltar ao exemplo da notação de direitos de acesso que dei um pouco antes: rwx r-- r--. Se substituirmos as letras e os hífens por números, de acordo com a regra que acabamos de descrever, e ao mesmo tempo somarmos os números em cada triplo, obtemos visão digital desta entrada: 744. I.e. verifica-se que a soma desses números mostra Chmod para arquivos ou uma pasta. Por exemplo:

    7 (rwx) = 4 + 2 +1 (direitos totais)

    5 (r-x)= 4 + 0 + 1 (ler e executar)

    6 (rw-) = 4 + 2 + 0 (ler e escrever)

    4 (r--) =4 + 0 + 0 (somente leitura)

Esta tabela lista todas as combinações possíveis de Chmod em forma numérica:

E agora vamos ver as várias combinações de Chmod em números, em relação aos grupos de usuários:

""Proprietário""

""Grupo""

""Descanso""

executar

executar

executar

Você mesmo (exceto quando você acessa o site via FTP) e todos os outros visitantes do seu site pertencem ao grupo “palavra” (todos os outros), então para trabalhar com o site, precisamos primeiro olhar para o último (terceiro) dígito Chmod. Para que o script “lance o arquivo” quando o usuário trabalhar com o site, será suficiente que os direitos de acesso (Chmod) sejam definidos sobre ele, começando em “4” (r-- - somente leitura) (5, 6,7 também são adequados, mas isso seria um exagero por razões de segurança.

“Para a pasta” na qual o arquivo deste script está localizado, você precisa definir pelo menos “5” (r-x - você pode ir para a pasta e ler seu conteúdo, não pode excluir ou adicionar). 7 também é adequado, mas também será supérfluo em termos de segurança. Se você precisar que o script não apenas leia, mas também “grave” alguns dados (por exemplo, inseridos pelo usuário), os direitos mínimos da “pasta” ainda serão “5”, mas o “arquivo” já será precisa dos direitos “6 » (ler e escrever).

Muito provavelmente, no servidor onde você copiou o conteúdo do mecanismo do seu site, o seguinte Chmod to objects será instalado:

Pastas 755

o proprietário (usuário) pode fazer tudo, o grupo e todos os outros podem apenas ler pastas e entrar nelas, mas não têm permissão para gravar arquivos, alterar nomes e excluí-los em diretórios. (rwxr-xr-x)

Arquivos 644

Se você tivesse um site composto por algum html, então você poderia deixar tudo assim. Mas sites modernos são construídos em mecanismos, e pode haver objetos que precisam ser gravados em nome de usuários do grupo "world" - o (todos os outros). Estas podem ser pastas usadas para armazenar páginas em cache ou aquelas nas quais serão carregadas imagens, etc. mas trabalhando com a interface do site como um usuário normal, você pode ter problemas. Portanto, a instalação de certos Chmods deve ser abordada seletivamente.

Equipe chmod (Alterar MODO- modo de mudança) tem uma sintaxe muito específica. Sintaxe em geral:
mas o que a caracteriza é que a mudança de regime pode assumir muitas formas. Pode ser especificado de duas maneiras:

  1. como um número octal. As permissões do proprietário correspondem a números no formato 00 , onde corresponde à permissão atribuída: 4 para leitura, 2 para gravação e 1 para execução. Da mesma forma, as permissões para o grupo de proprietários se tornam 0 e as permissões para "outros" se tornam . Então, tudo o que você precisa fazer é encontrar a soma das permissões que você atribui para obter o modo desejado. Assim, as permissões rwxr-xr-- correspondem a 400+200+100 (permissões de proprietário, rwx) +40+10 (permissões de grupo, r-x) +4 (outras permissões, r--) = 754; assim, as permissões são expressas em termos de membros livres. Isso significa que as permissões anteriores são substituídas incondicionalmente;
  2. usando expressões. Nesse caso, as permissões são expressas por meio de uma sequência de expressões separadas por vírgulas. A partir daqui, a expressão passa a ser: [categoria]<+|-|=><разрешения> .
Exemplos:
  • chmod -R o-w /shared/docs: remove recursivamente a permissão de gravação para outros de todos os arquivos e subdiretórios no diretório /shared/docs/.
  • chmod -R og-w,o-x private/: remove recursivamente a permissão de gravação para o grupo e outros de todo o diretório privado/ e remove a permissão de execução para outros.
  • chmod -c 644 misc/arquivo*: altera as permissões de todos os arquivos no diretório misc/ cujos nomes começam com file para rw-r--r-- (ou seja, permissão de leitura para todos e permissão de gravação apenas para o proprietário) e relata apenas os arquivos que foram afetados por o comando.

O exemplo a seguir mostra como permitir que todos os usuários leiam, modifiquem e salvem um arquivo. Para fazer isso, você precisa alterar as permissões do grupo "outros".
Digite na linha de comando:
ls -l example1.txt As seguintes informações serão exibidas:
-rw-rw-r-- 1 user user 42 Mar 24 22:07 example1.txt Agora digite o seguinte comando:
chmod o+w exemplo1.txt O comando o+w significa que você dá a "outros", denotado pela letra "o", permissão de gravação para o arquivo exemplo1.txt . Para ver no que resultou a execução do comando especificado, vamos examinar o arquivo novamente:
-rw-rw-rw- 1 user user 42 Mar 24 22:09 example1.txt Agora todos podem ler e escrever no arquivo.
Para desabilitar a leitura e gravação em example1.txt, use o comando chmod.
chmod go-rw example1.txt O comando go-rw informa ao sistema que você deseja impedir que o grupo e "outros" leiam e gravem no arquivo example1.txt.
Como resultado, as permissões ficarão assim:
-rw------- 1 user user 42 Mar 24 22:10 example1.txt As classes e direitos acima são abreviações para as palavras em inglês correspondentes, portanto são fáceis de lembrar: tudo o que você precisa lembrar são alguns caracteres e letras.
Aqui está uma lista de transcrições dessas abreviações:

Classes u - o usuário que é o proprietário do arquivo (do inglês "user");
g - o grupo ao qual o usuário pertence (do inglês "group");
o - o restante (não o proprietário e não o grupo proprietário, do inglês "others");
a - todos (u, g e o, do inglês "all"). Permissões r - o direito de ler;
w é o direito de escrever;
x - o direito de executar. Ações + - dá o direito;
- - tira o direito;
= - deixa apenas este direito.

Quer testar seus conhecimentos? Remova todos os direitos ao arquivo example1.txt de todos os usuários.
chmod a-rwx example1.txt Agora verifique se você pode ler dado arquivo comando cat example1.txt . Você deve ver o seguinte:
cat: example1.txt: Permissão negada Ao revogar todas as permissões, incluindo a sua, você negou o acesso ao arquivo. Mas como o arquivo pertence a você, você sempre pode devolver os direitos com o seguinte comando:
chmod u+rw example1.txt Para certificar-se de que você pode ler este arquivo, use o comando cat example1.txt.
Aqui estão alguns exemplos de uso do comando chmod:

  • g+w Dá permissão de gravação ao grupo proprietário.
  • o-rwx - retira todos os direitos de outros usuários;
  • u+x - dá ao proprietário o direito de executar o arquivo;
  • a+rw - permite que qualquer pessoa leia e escreva em um arquivo;
  • ug+r - permite que o proprietário e o grupo leiam o arquivo;
  • g=rx - permite que o grupo leia e execute o arquivo (não grave nele).

A opção -R permite alterar as permissões para toda a árvore de diretórios.
Como os diretórios não podem ser "executados" como aplicativos, adicionar ou remover o direito correspondente significa permitir (ou proibir) a visualização do diretório.
Por exemplo, se você impedir que outros usuários executem o diretório docs/, não importa quem tem permissões de leitura e gravação. Ninguém poderá acessar o conteúdo de um diretório a menos que saiba o nome exato do arquivo que ele contém.
Digite, por exemplo:
chmod a-x docs para revogar a permissão de execução de todos os usuários.
Se você agora tentar alterar o diretório com cd docs , obterá uma falha:
bash: docs: Permissão negada Recupere permissões para você e seu grupo:
chmod ug+x docs Se você agora verificar os resultados de suas ações com o comando ls -l , verá que apenas outros usuários têm acesso negado ao diretório docs/.