Como usar o comando chgrp no Linux

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

O chgrpcomando no Linux muda a propriedade do grupo de um arquivo ou diretório. Por que usar em vez de chown? Às vezes, um canivete suíço é ótimo, mas quando você realmente precisa de um bisturi, apenas um bisturi serve.

Quando você deve usar chgrp

Use o chgrpcomando para alterar a propriedade do grupo de um arquivo ou diretório. O chowncomando permite que você altere o proprietário do usuário e o proprietário do grupo de um arquivo ou diretório. Então, por que você precisa ou usa chgrp?

Bem, para começar, é fácil. Usarchown para alterar apenas a configuração do proprietário do grupo é um pouco contra-intuitivo. Você tem que ter muito cuidado com a sintaxe. Depende da colocação correta de dois pontos “:”. Coloque isso no lugar errado e você não está fazendo a mudança que pensava que estava fazendo.

A sintaxe de chgrpé totalmente mais direta . Ele também possui um recurso interessante que informa em termos simples quais alterações ele acabou de fazer.

É uma ferramenta desenvolvida especificamente para a tarefa em questão. chgrpabraça completamente o princípio de design do Unix de fazer uma coisa e fazê-la bem. Vamos ver o que isso tem a oferecer.

Alteração da propriedade de grupo de um arquivo

Alterar a propriedade de grupo de um arquivo é muito simples. Você deve usar  sudo com chgrp. Os grupos não pertencem aos usuários, portanto, se um arquivo ou diretório é movido de um grupo para outro, não é uma decisão que cabe ao usuário médio. Esse é um trabalho para alguém com privilégios de root.

Recomendado:  Onde está o painel de controle em um Mac?

Vamos mudar a propriedade do grupo de um arquivo de origem C chamado “gc.c.” Vamos mudá-lo para o grupo “devteam”.

Podemos verificar os valores atuais de propriedade usando ls a opção -l(lista longa).

ls -l

Este é o comando para alterar a propriedade do grupo. Digite  sudo, um espaço  chgrp,, um espaço, o nome do grupo que vamos definir como o proprietário do grupo, um espaço e o nome do arquivo.

sudo chgrp devteam gc.c

Verificaremos se a alteração foi feita usando ls -lnovamente.

ls -l

sudo chgrp devteam gc.c em uma janela de terminal

Podemos ver que a propriedade do grupo foi alterada de “dave” para “devteam”.

Para alterar a propriedade do grupo para um conjunto de arquivos de uma só vez, você pode usar curingas. Vamos mudar a propriedade do grupo para todos os arquivos de origem C no diretório atual. Usaremos este comando:

sudo chgrp devteam * .c

Podemos verificar se a alteração foi feita conforme o esperado usando ls -l.

ls -l

sudo chgrp devteam * .c em uma janela de terminal

Todos os arquivos de origem C neste diretório foram alterados para que sua propriedade de grupo seja “devteam”.

Ao usar a -copção (alterações) chgrp, listará as alterações feitas em cada arquivo. Suponha que cometemos um erro, queremos que os arquivos de origem C tenham sua propriedade de grupo definida como “researchlab”. Vamos corrigir isso agora. Usaremos este comando:

sudo chgrp -c researchlab * .c

sudo chgrp -c researchlab * .c em uma janela de terminal

As alterações são feitas por nós e cada uma é listada à medida que acontece, permitindo-nos verificar se o que alterámos está correto.

Mudando a propriedade de grupo de um diretório

Alterar a propriedade do grupo de um diretório é tão simples. Podemos usar este comando para alterar a propriedade do grupo para o diretório “backup”.

sudo chgrp -c devteam ./backup

Para ficar claro, este comando mudará a propriedade do grupo do próprio diretório, não dos arquivos dentro do diretório. Usaremos ls -lcom a -dopção (diretório) para verificar se este é o caso.

ls -l -d

sudo chgrp -c devteam ./backup em uma janela de terminal

A propriedade do grupo do próprio diretório foi alterada para “devteam”.

Recomendado:  Como personalizar o centro de controle do seu iPhone ou iPad

A opção recursiva

Se quisermos mudar a propriedade do grupo para os arquivos e diretórios armazenados em um diretório, podemos usar a -Ropção (recursiva). Isso fará com chgrpque a propriedade do grupo mude para todos os arquivos e subdiretórios abaixo do diretório de destino.

Vamos tentar isso com o diretório “backup”. Aqui está o comando:

sudo chgrp -R devteam ./backup

Revisaremos os arquivos em um dos subdiretórios aninhados com o lscomando e também verificaremos as configurações de um dos subdiretórios aninhados usando ls.

ls -l ./backup/images
ls -l -d ./backup/images

sudo chgrp -R devteam ./backup em uma janela de terminal

Podemos ver que a propriedade do grupo foi alterada tanto para os arquivos nos subdiretórios aninhados quanto para os subdiretórios aninhados.

Usando um arquivo de referência

Até agora, informamos explicitamente chgrpo nome do grupo que desejamos usar. Podemos também usar chgrpde maneira que diz “definir a propriedade de grupo de esse arquivo para a mesma propriedade de grupo como  esse arquivo.”

Vamos definir a propriedade do grupo de “gc.h” para ser igual a “gc.c.”

Podemos verificar as configurações atuais de “gc.c” e “gc.h” usando ls.

ls -l gc.c
ls -l gc.h

A opção que precisamos usar é a --referenceopção. A propriedade do grupo é copiada do arquivo de referência para o outro arquivo. Tome cuidado para distribuir os arquivos da maneira correta.

sudo chgrp --reference = gc.c gc.h

Usaremos lspara verificar se as configurações foram transferidas para “gc.h.”

ls -l gc.h

sudo chgrp --reference = gc.c gc.h em uma janela de terminal

O arquivo “gc.h” agora tem a mesma propriedade de grupo que “gc.c.”

Usando chgrp com links simbólicos

Podemos usar chgrppara alterar a propriedade do grupo de links simbólicos, ou do arquivo apontado pelo link simbólico.

Para este exemplo, criamos um link simbólico chamado “button_link”. Isso aponta para um arquivo chamado “./backup/images/button_about.png.” Para alterar a propriedade de grupo do arquivo, devemos usar a --dereferenceopção. Isso mudará as configurações do arquivo e deixará o link simbólico inalterado.

Recomendado:  A maneira mais barata de transmitir TV: alterne suas assinaturas

Vamos verificar as configurações do link simbólico usando ls -l.

ls -l button_link

O comando para alterar o arquivo é:

sudo chgrp --dereference devteam button_link

Verificaremos se o link simbólico não foi alterado usando ls e também verificaremos as configurações de propriedade de grupo para o arquivo.

ls -l button_link
ls -l ./backup/images/button_about.png

sudo chgrp --dereference devteam button_link em uma janela de terminal

O link simbólico não foi alterado e o arquivo “button_about.png” teve sua propriedade de grupo modificada.

Para alterar a propriedade do grupo do link simbólico em si, devemos usar a --no-dereferenceopção.

O comando a ser usado é:

sudo chgrp --no-dereference devteam button_link

Usaremos ls -l para verificar se a nova propriedade do grupo foi definida para o link simbólico.

ls -l botão-link

sudo chgrp --no-dereference devteam button_link em uma janela de terminal

Desta vez, o item afetado foi o próprio link simbólico, não o arquivo para o qual ele aponta.

Bom e simples

Simples é bom. Significa que há menos para lembrar e menos para se confundir. Isso deve significar menos erros.