O chgrp
comando 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.
Índice
Quando você deve usar chgrp
Use o chgrp
comando para alterar a propriedade do grupo de um arquivo ou diretório. O chown
comando 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. chgrp
abraç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.
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 -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 alteração foi feita conforme o esperado 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 -c
opçã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
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 -l
com a -d
opção (diretório) para verificar se este é o caso.
ls -l -d
A propriedade do grupo do próprio diretório foi alterada para “devteam”.
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 -R
opção (recursiva). Isso fará com chgrp
que 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 ls
comando 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 chgrp
o nome do grupo que desejamos usar. Podemos também usar chgrp
de 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 --reference
opçã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 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 --dereference
opção. 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 --no-dereference
opçã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
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.