Como usar o comando chgrp no Linux

O comando chgrp 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 comando chgrp para alterar a propriedade do grupo de um arquivo ou diretório. O comando chown 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 o chgrp?

Bem, para começar, é fácil. Usar chown 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 do chgrp é totalmente mais direto. 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. O chgrp adota 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 do usuário comum. Esse é um trabalho para alguém com privilégios de root.

  7 melhores temas escuros para Linux em 2019

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 com 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 -l novamente.

ls -l

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 mudança foi feita conforme esperávamos usando ls -l.

ls -l

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

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

sudo chgrp -c researchlab *.c

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

  Como jogar jogos Atari no Linux

Mudando a propriedade de grupo de um diretório

Alterar a propriedade de 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 -l com a opção -d (diretório) para verificar se esse é o caso.

ls -l -d

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

A opção recursiva

Se quisermos alterar a propriedade do grupo para os arquivos e diretórios armazenados em um diretório, podemos usar a opção -R (recursiva). Isso fará com que o chgrp mude a propriedade do grupo 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 comando ls e também verificaremos as configurações de um dos subdiretórios aninhados usando ls.

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

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 a chgrp o nome do grupo que desejamos usar. Também podemos usar chgrp de forma que diga “definir a propriedade do grupo deste arquivo para a mesma propriedade do grupo”.

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

  Como tornar o terminal Linux amigável com o ColorLS

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 opção –reference. 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 ls para verificar se as configurações foram transferidas para “gc.h.”

ls -l gc.h

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

Usando chgrp com links simbólicos

Podemos usar chgrp para 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 opção –dereference. Isso mudará as configurações do arquivo e deixará o link simbólico inalterado.

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

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 opção –no-dereference.

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 button-link

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. Isso significa que há menos para lembrar e menos para se confundir. Isso deve significar menos erros.