Back to blog

Os comandos chown e chmod

3 min de leitura
895 palavras

Os comandos chown e chmod são usados para gerenciar permissões de arquivos e diretórios no Linux e em outros sistemas operacionais baseados em Unix. Cada um tem uma função específica:

Primeiramente vamos verificar as permisoes do arquivo que queremos autera utilizando o coamdno ls - no diretorio onde o arquivo

1. chown (Change Owner)

  • Função: O comando chown é usado para alterar o proprietário (dono) de um arquivo ou diretório e, opcionalmente, o grupo associado a ele.

  • Sintaxe:

    chown [novo_dono]:[novo_grupo] arquivo.tx
  • Exemplos:

    • Alterar o dono do arquivo:

      chown maria arquivo.txt

      Para mudar apenas o grupo de um arquivo ou diretório, a sintaxe é a seguinte:

      chown :grupo arquivo_ou_diretorio
      • grupo: O nome do grupo para o qual você deseja atribuir a propriedade.
      • arquivo_ou_diretorio: O arquivo ou diretório cujo grupo você deseja alterar.
    • Alterar o dono e o grupo:

      chown maria:admin arquivo.txt
    • Aplicar de forma recursiva a um diretório e seus subdiretórios:

      chown -R maria:admin /diretorio

Flags do chown :

  1. R ou -recursive: Aplica recursivamente o comando a todos os arquivos e subdiretórios dentro do diretório especificado.
    • Exemplo: chown -R maria:admin /diretorio
  2. v ou -verbose: Mostra uma saída detalhada de cada arquivo ou diretório modificado.
    • Exemplo: chown -v maria:admin arquivo.txt
  3. f ou -silent ou -quiet: Suprime mensagens de erro.
    • Exemplo: chown -f maria:admin arquivo.txt
  4. -dereference: Altera o proprietário do arquivo para o qual o link simbólico aponta, em vez do próprio link simbólico.
    • Exemplo: chown --dereference maria:admin link_simbolico
  5. -no-dereference: Altera o proprietário do link simbólico em vez do arquivo para o qual ele aponta.
    • Exemplo: chown --no-dereference maria link_simbolico
  6. -from=CURRENT_OWNER:CURRENT_GROUP: Altera o proprietário apenas se o arquivo tiver o proprietário e grupo especificados.
    • Exemplo: chown --from=joao:admin maria:admin arquivo.txt

2. chmod (Change Mode)

  • Função: O comando chmod é usado para modificar as permissões de leitura, escrita e execução de arquivos ou diretórios para o dono, grupo e outros usuários.

  • Sintaxe:

    chmod [permissões] arquivo
  • As permissões podem ser definidas de duas formas: com números (notação octal) ou com letras.

  • Notação Octal:

    • r (leitura) = 4

    • w (escrita) = 2

    • x (execução) = 1

    • Exemplo: chmod 755 significa:

      • Dono: leitura, escrita e execução (7 = 4 + 2 + 1)
      • Grupo: leitura e execução (5 = 4 + 1)
      • Outros: leitura e execução (5 = 4 + 1)
    • Exemplo de comando:

      chmod 755 arquivo.txt

Componentes da Notação com Letras:

Identificadores de Usuários:

  • u: Dono (Owner/User)
  • g: Grupo (Group)
  • o: Outros (Others)
  • a: Todos (All - dono, grupo e outros)

Permissões:

  • r: Leitura (Read)
  • w: Escrita (Write)
  • x: Execução (Execute)

Operadores:

  • +: Adicionar permissão.
  • : Remover permissão.
  • =: Atribuir permissão, removendo qualquer permissão pré-existente.

Exemplos de Uso:

Adicionar uma permissão:

  • Exemplo: Adicionar permissão de execução para o dono (u) e para o grupo (g):Isso permite que o dono e o grupo possam executar o arquivo.

    chmod u+x,g+x arquivo.txt

Remover uma permissão:

  • Exemplo: Remover a permissão de escrita para "outros" (o):Isso remove a permissão de escrita para todos os outros usuários que não sejam o dono ou o grupo.

    chmod o-w arquivo.txt

Atribuir permissão específica:

  • Exemplo: Definir permissões de leitura e execução para todos (a), removendo qualquer outra permissão:Isso dá permissão de leitura e execução para todos (dono, grupo e outros), removendo qualquer permissão de escrita, se existisse.

    chmod a=rx arquivo.txt

Combinar permissões:

  • Exemplo: Adicionar permissão de leitura para o grupo (g) e remover permissão de execução para "outros" (o):Isso concede ao grupo a permissão de leitura e remove a permissão de execução de outros usuários.

    chmod g+r,o-x arquivo.txt

Como isso funciona:

Vamos supor que temos um arquivo que possui estas permissões iniciais:

-rw-r--r--
  • Dono: Leitura e escrita (rw-)
  • Grupo: Apenas leitura (r--)
  • Outros: Apenas leitura (r--)

Agora, aplicamos o seguinte comando:

chmod u+x,g+w,o-r arquivo.txt
  • u+x: Adiciona permissão de execução para o dono.
  • g+w: Adiciona permissão de escrita para o grupo.
  • o-r: Remove a permissão de leitura para outros.

O resultado seria algo como:

-rwxrw----
  • Dono: Leitura, escrita e execução (rwx)
  • Grupo: Leitura e escrita (rw-)
  • Outros: Sem permissões (--)

Flags do chmod :

  1. R ou -recursive: Aplica as permissões recursivamente a todos os arquivos e subdiretórios dentro do diretório especificado.
    • Exemplo: chmod -R 755 /diretorio
  2. v ou -verbose: Exibe uma saída detalhada de cada arquivo ou diretório cujas permissões foram alteradas.
    • Exemplo: chmod -v 755 arquivo.txt
  3. f ou -silent ou -quiet: Suprime mensagens de erro.
    • Exemplo: chmod -f 755 arquivo.txt
  4. -reference=arquivo: Copia as permissões de um arquivo para outro.
    • Exemplo: chmod --reference=arquivo_origem arquivo_destino

Resumo:

  • chown: Altera o dono e o grupo de arquivos e diretórios.
  • chmod: Altera as permissões (leitura, escrita, execução) de arquivos e diretórios.