Domine o Comando Chown no Linux: Guia Completo com Exemplos

Em sistemas Linux, cada arquivo e diretório tem um dono. A alteração dessa propriedade é possível através do comando `chown`. Vamos explorar como isso funciona.

O Conceito de Usuário e Grupo Proprietário

O Linux é um sistema operacional multiusuário, permitindo que múltiplas contas de usuário coexistam e que vários usuários possam estar ativos simultaneamente. Para garantir a organização e segurança, o Linux emprega o conceito de propriedade. Cada arquivo é atribuído a um usuário (o proprietário) e a um grupo.

Quando um arquivo é criado, o usuário que o criou torna-se seu proprietário. O grupo associado ao arquivo é, por padrão, o grupo principal do usuário criador. Tanto usuários quanto grupos possuem nomes e também identificadores numéricos únicos, conhecidos como UID (Identificador de Usuário) e GID (Identificador de Grupo), respectivamente.

Normalmente, ao criar um arquivo, ele será de sua propriedade e do seu grupo principal, geralmente um grupo com o mesmo nome que seu usuário, estabelecido quando sua conta foi criada no sistema.

O comando `chown` é usado para modificar esses valores de propriedade, permitindo definir um novo proprietário, um novo grupo, ou ambos. Embora o proprietário de um arquivo possa modificar o grupo ao qual ele pertence, apenas o usuário root (administrador) tem permissão para alterar o proprietário do arquivo para outro usuário, prevenindo que um usuário assuma a propriedade de arquivos de outros sem permissão.

Quando Alterar a Propriedade?

Existem várias situações onde a alteração da propriedade de arquivos pode ser necessária:

  • Ao transferir arquivos entre diferentes sistemas Linux ou similares, pode ser necessário ajustar os proprietários de usuário e grupo para corresponder às contas do novo sistema.
  • Quando um membro da equipe deixa uma organização, seus arquivos podem precisar ser transferidos para outro membro, alterando o proprietário do usuário e do grupo.
  • Ao criar scripts específicos para uso por um determinado usuário.
  • Quando arquivos ou diretórios são criados como root, mas precisam ser acessados por usuários específicos.

Como Visualizar seus Grupos, UID e GID

Para listar os grupos dos quais você é membro, use o comando `groups`:

groups

Para obter uma lista dos grupos, seus IDs numéricos, seu UID e GID, utilize o comando `id`:

id

O comando `id` pode ser refinado com opções:

  • `-u`: Exibe seu UID.
  • `-g`: Exibe seu GID efetivo.
  • `-nu`: Exibe seu nome de usuário.
  • `-ng`: Exibe o nome do seu grupo atual.
id -u
id -g
id -nu
id -ng

Verificando a Propriedade de Arquivos e Diretórios

Para ver os proprietários de arquivos e diretórios, use o comando `ls` com a opção `-l` (lista longa):

ls -l

Na saída, o nome do usuário aparece duas vezes: a primeira vez indica o proprietário do arquivo, e a segunda indica o grupo ao qual o arquivo pertence. Por padrão, um novo usuário é adicionado a um grupo privado com seu próprio nome.

No exemplo abaixo, o arquivo pertence ao usuário mary e ao grupo mary:

ls -l

Já neste, o arquivo é de oscar, mas pertence ao grupo researchlab:

Isso permite que outros membros do grupo researchlab acessem o arquivo, dependendo das permissões definidas.

Alterando o Proprietário de um Usuário

O comando abaixo altera o proprietário do arquivo `while.c` para o usuário mary:

sudo chown mary while.c

Para verificar as mudanças, use:

ls -l while.c

É possível alterar a propriedade de vários arquivos de uma vez:

sudo chown mary getval.c global.c goto.c

Para verificar a alteração:

ls -l getval.c global.c goto.c

Utilizando curingas, você pode alterar a propriedade de um grupo de arquivos. Este comando muda o proprietário de todos os arquivos que começam com a letra “c” para o usuário mary:

sudo chown mary c*.*

Resultado:

ls -l mary c*.*

Para alterar a propriedade de um diretório, basta passar o nome do diretório para o comando `chown`:

sudo chown mary ./archive/

Use a opção `-d` com o `ls` para visualizar as propriedades do diretório e não dos arquivos em seu interior:

ls -l -d ./archive/

A opção `-R` (recursiva) altera a propriedade de todos os arquivos dentro de um diretório:

sudo chown -R mary ./archive/

Verificando o resultado:

ls -l ./archive/

Todos os arquivos do diretório `archive` agora pertencem a mary.

Alterando o Grupo Proprietário

A propriedade do grupo pode ser alterada de várias formas.

Para alterar simultaneamente o usuário e o grupo proprietário, inclua ambos os nomes separados por dois pontos `”:”`. É importante que o grupo já exista:

sudo chown mary:researchlab charm.c

O resultado:

ls -l charm.c

Uma forma abreviada de alterar a propriedade para o grupo atual do novo proprietário é omitir o nome do grupo após os dois pontos:

sudo chown mary: caps.c

ls -l caps.c

Tanto o proprietário do usuário quanto do grupo são alterados para mary.

Para alterar apenas a propriedade do grupo, omita o nome do usuário, colocando os dois pontos antes do nome do grupo. O proprietário do usuário não será alterado.

sudo chown :researchlab at.c

ls -l at.c

Apenas a propriedade do grupo foi alterada.

Utilizando UID e GID com Chown

O comando `chown` permite usar os valores numéricos UID e GID. O comando abaixo define o usuário e o grupo para Maria:

sudo chown 1001:1001 at.c

ls -l at.c

A Importância da Propriedade

A propriedade é essencial na segurança de arquivos no Linux, complementando as permissões. Com os comandos `chown` e `chmod`, você pode garantir o acesso correto aos arquivos em seu sistema.