Como usar o comando chown no Linux

Uma janela de terminal em um sistema Linux
Fatmawati Achmad Zaenuri / Shutterstock.com

Todos os arquivos e diretórios em sistemas Linux pertencem a alguém. Você pode mudar sua propriedade com o chowncomando. Nós mostramos como.

Cada arquivo pertence a um usuário e a um grupo

Linux é um sistema multiusuário. O sistema operacional permite que várias contas de usuário sejam definidas e que qualquer usuário válido faça logon no computador. Além disso, vários usuários podem usar um único computador ao mesmo tempo.

Para manter um registro de quais arquivos pertencem a quais usuários e para garantir alguma segurança, o Linux usa o conceito de propriedade. Cada arquivo pertence a um proprietário – um usuário – e a um grupo.

Quando um arquivo é criado, seu proprietário é o usuário que o criou. O grupo ao qual o arquivo pertence – o grupo “proprietário” – é o grupo atual do usuário. Os usuários e grupos têm nomes e também identidades numéricas, chamadas de identificador de usuário (ou exclusivo) (UID) e identificador de grupo (GID).

Quando você cria um arquivo, ele pertence a você e ao seu grupo atual. Normalmente, este é o grupo no qual você se inscreveu. Por padrão, este é um grupo que compartilha o mesmo nome de seu nome de usuário e foi criado quando você foi criado como um usuário no sistema.

Você pode usar o chown comando para alterar os valores de propriedade para outra coisa. Você pode definir um novo proprietário, um novo grupo ou um novo proprietário e um novo grupo ao mesmo tempo. O proprietário de um arquivo pode alterar a propriedade do grupo, mas apenas o root pode alterar a propriedade do usuário porque isso envolve outro usuário. Sem privilégios de root, você não pode fazer outro usuário do sistema “adotar” um arquivo inadvertidamente.

Recomendado:  Como “Dispositivos confiáveis” funcionam no Windows 10 (e por que você não precisa mais “confiar neste PC”)

Por que você quer mudar a propriedade?

Aqui estão alguns exemplos de situações em que você pode querer fazer isso:

  • Se você transferir arquivos entre diferentes sistemas operacionais Linux ou semelhantes a Unix, precisará alterar os proprietários do usuário e do grupo para os novos proprietários do usuário e do grupo da conta em que deseja usar os arquivos no novo computador Linux.
  • Um usuário pode deixar sua organização, e todos os seus arquivos serão de responsabilidade de outro membro da equipe. Você precisará alterar o proprietário e o proprietário do grupo para o membro da equipe agora responsável por esses arquivos.
  • Você pode criar um script que será usado por um usuário específico.
  • Você pode criar um arquivo ou diretório conectado como root, mas deseja que seja acessível a um usuário específico.

Visualizando seus grupos, UID e GID

Para listar os grupos em que você está, você pode usar o groupscomando.

grupos

grupos em uma janela de terminal

Para obter uma lista dos grupos, seus IDs numéricos  e seu UID e GID , use o idcomando:

Eu iria

id em uma janela de terminal

Você pode usar algumas opções com ID para refinar a saída.

  • -u : Liste seu UID.
  • -g : Liste seu GID efetivo (atual).
  • -nu : Lista seu nome de usuário.
  • -ng : Lista o nome do seu grupo atual.
id -u
id -g
id -nu
id -ng

saída do comando id em uma janela de terminal

Ver a propriedade de um usuário e grupo de um arquivo

Para ver os proprietários de um arquivo ou diretório, use a opção -l(lista longa) com ls.

ls -l
ls -l em uma janela de terminal

Podemos ver que o nome daveaparece duas vezes na lista. A aparência mais à esquerda nos diz que o proprietário do arquivo é um usuário chamado dave. O mais à direita davenos diz que o arquivo pertence a um grupo que também é chamado dave.

Por padrão, quando um usuário Linux é criado, ele é adicionado a um grupo privado nomeado com seu nome de usuário. Eles são os únicos membros desse grupo.

Recomendado:  Como o equipamento de jogo ruim pode atrapalhar (Como obter o Windows 10 Pro)

Este arquivo executável pertence ao usuário marye o grupo ao qual o arquivo pertence é mary'sum grupo privado.

ls -l

ls -l em uma janela de terminal

Este arquivo pertence ao usuário oscar, mas o grupo ao qual o arquivo pertence é chamado researchlab. Isso significa que outros membros do researchlabgrupo podem acessar este arquivo, de acordo com as permissões de arquivo que foram definidas para os membros desse grupo.

ls -l em uma janela de terminal

Alteração da propriedade do usuário

Vamos trabalhar com alguns exemplos. Este comando mudará a propriedade do usuário do arquivo while.c para o usuário mary.

sudo chown mary while.c

sudo chown mary while.c em uma janela de terminal

Podemos usar lspara ver as mudanças nas propriedades do arquivo.

ls -l while.c

ls -l while.c em uma janela de terminal

Você pode usar chownpara alterar a propriedade de vários arquivos de uma vez.

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

sudo chown mary getval.c global.c goto.c em uma janela de terminal

Isso altera a propriedade do usuário de todos os três arquivos.

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

ls -l getval.c global.c goto.c em uma janela de terminal

Você pode usar curingas para selecionar grupos de arquivos. Este comando mudará a propriedade do usuário de todos os arquivos que começam com a letra “c”.

sudo chown mary c *. *

sudo chown mary c *. * em uma janela de terminal

Todos os arquivos agora terão  marycomo seus proprietários. Observe que nenhuma propriedade do grupo foi alterada.

ls -l mary c *. *

ls -l mary c *. * em uma janela de terminal

Vamos mudar a propriedade de um diretório. Simplesmente passamos o nome do diretório para em chownvez de um nome de arquivo.

sudo chown mary ./archive/

sudo chown mary ./archive/ em uma janela de terminal

Para verificar as propriedades de propriedade do diretório que usamos ls, mas também usamos a -dopção (diretório) para ele. Isso lista as propriedades do diretório, não os arquivos dentro dele.

ls -l -d ./archive/

ls -l -d ./archive/ em uma janela de terminal

Para alterar a propriedade de todos os arquivos em um diretório, você pode usar a -Ropção (recursiva). Esta opção mudará a propriedade do usuário de todos os arquivos da archivepasta.

sudo chown -R mary ./archive/

sudo chown -R mary ./archive/ em uma janela de terminal

Agora, vamos examinar os arquivos no diretório de arquivamento.

ls -l ./archive/

ls -l ./archive/ em uma janela de terminal

Como esperado, todos os arquivos agora pertencem a mary.

Mudança de propriedade do grupo

Existem diferentes maneiras de alterar a propriedade do grupo.

Recomendado:  Como Sair de um Servidor Discord

Para alterar a propriedade do grupo ao mesmo tempo que altera a propriedade do usuário, passe o novo nome do proprietário e o novo nome do grupo com dois pontos “:” separando-os. O grupo já deve existir.

sudo chown mary: charme researchlab.c

sudo chown mary: researchlab charme.c em uma janela de terminal

O proprietário do usuário e o grupo ao qual o arquivo pertence foram alterados.

ls -l encanto.c

ls -l encanto.c em uma janela de terminal

Uma forma abreviada de alterar a propriedade do grupo para o grupo atual do novo proprietário, basta fornecer os dois pontos e omitir o nome do grupo.

sudo chown mary: caps.c

sudo chown mary: caps.c em uma janela de terminal

ls -l caps.c

ls -l caps.c em uma janela de terminal

A propriedade do usuário e a propriedade do grupo foram alteradas para mary.

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

sudo chown: researchlab at.c

sudo chown: researchlab at.c em uma janela de terminal

ls -l at.c

ls -l at.c em uma janela de terminal

A propriedade do grupo foi alterada, mas a propriedade do usuário permanece a mesma.

Usando Chown com valores UID e GID

Você pode usar os valores numéricos de UID e GID com o chowncomando. Este comando definirá o usuário e a propriedade do grupo como mary.

sudo chown 1001: 1001 at.c

sudo chown 1001: 1001 at.c em uma janela de terminal

ls -l at.c

ls -l at.c em uma janela de terminal

Posse são nove décimos da lei

Ou então eles dizem. Mas no Linux, a propriedade é uma grande parte da segurança de arquivos, com as permissões de arquivo fornecendo o restante. Use os comandos chowne chmodpara proteger o acesso aos arquivos em seu sistema.