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.