Basico de chown e chgrp - Alterando a Propriedade de Arquivos no Linux

Basico de chown e chgrp - Alterando a Propriedade de Arquivos no Linux

O Que chown e chgrp Fazem

chown altera o dono de um arquivo, e chgrp altera o grupo. A sintaxe chown user:group permite alterar ambos de uma vez.

Resumo Rapido

  • Alterar dono --> sudo chown user file
  • Alterar dono e grupo --> sudo chown user:group file
  • Alterar somente o grupo --> sudo chgrp group file
  • Recursivo (diretorio inteiro) --> sudo chown -R user:group dir/
  • Sempre verifique com ls -la antes e depois

Verificando a Propriedade Atual com ls -l

A 3a e 4a colunas da saida do ls -l mostram o dono e o grupo.

$ ls -l /var/www/html/index.html
-rw-r--r-- 1 root root 1024 Jun  1 10:00 /var/www/html/index.html
Coluna Valor Significado
3a root Usuario dono
4a root Grupo dono

Sintaxe do chown

Use chown para alterar o usuario dono. Voce precisa de sudo para alterar a propriedade de arquivos que nao sao seus.

Alterar somente o dono

$ sudo chown www-data /var/www/html/index.html
$ ls -l /var/www/html/index.html
-rw-r--r-- 1 www-data root 1024 Jun  1 10:00 /var/www/html/index.html

Alterar dono e grupo de uma vez

Use a forma user:group para atualizar ambos em um unico comando.

$ sudo chown www-data:www-data /var/www/html/index.html
$ ls -l /var/www/html/index.html
-rw-r--r-- 1 www-data www-data 1024 Jun  1 10:00 /var/www/html/index.html

Alterar somente o grupo (sintaxe chown :group)

Deixe a parte do usuario vazia para alterar somente o grupo mantendo o dono atual.

$ sudo chown :developers /var/www/html/

A sintaxe antiga com ponto (chown user.group) ainda funciona na maioria dos sistemas, mas os dois-pontos e o padrao atual.

Sintaxe do chgrp

chgrp e o comando dedicado para alterar o grupo. E funcionalmente equivalente a chown :group.

$ sudo chgrp www-data /var/www/html/index.html
$ ls -l /var/www/html/index.html
-rw-r--r-- 1 root www-data 1024 Jun  1 10:00 /var/www/html/index.html

Use chgrp quando quiser deixar explicita a intencao de alterar somente o grupo em um script ou historico de comandos.

Alteracoes Recursivas com -R

Adicione -R para aplicar a alteracao a todos os arquivos e subdiretorios dentro de um diretorio.

$ sudo chown -R www-data:www-data /var/www/html/
$ ls -la /var/www/html/
drwxr-xr-x 2 www-data www-data 4096 Jun  1 10:00 .
drwxr-xr-x 3 root     root     4096 Jun  1 09:00 ..
-rw-r--r-- 1 www-data www-data 1024 Jun  1 10:00 index.html
-rw-r--r-- 1 www-data www-data  512 Jun  1 10:00 style.css

-R afeta todos os arquivos sob o diretorio alvo. Verifique o conteudo com ls -la antes de executar para evitar alteracoes indesejadas.

Padroes de Uso Comuns

Deploy em servidor web (Nginx / Apache)

# Transferir a propriedade para o usuario do servidor web apos o deploy dos arquivos
$ sudo chown -R www-data:www-data /var/www/myapp/

Transferindo para um usuario de aplicacao

$ sudo chown -R deploy:deploy /opt/myapp/

Recuperando arquivos criados com sudo

Arquivos criados com sudo pertencem ao root. Recupere-os com:

$ sudo chown $USER:$USER ~/myfile.txt

$USER expande automaticamente para o seu nome de login atual.

Erros Comuns e Solucoes

Operation not permitted

chown: changing ownership of 'file.txt': Operation not permitted

Causa: Somente root pode alterar a propriedade. Execute com sudo.

$ sudo chown user:group file.txt

invalid user / invalid group

chown: invalid user: 'webmaster'
chgrp: invalid group: 'webteam'

Causa: O usuario ou grupo especificado nao existe no sistema.

# Listar usuarios
$ getent passwd | cut -d: -f1

# Listar grupos
$ getent group | cut -d: -f1

Resumo

Comando O Que Muda
chown user file Somente o dono
chown :group file Somente o grupo
chown user:group file Dono e grupo
chgrp group file Somente o grupo
Flag -R Aplica recursivamente

Fluxo de trabalho seguro

# Verificar antes
ls -la /path/to/target

# Aplicar alteracao
sudo chown -R user:group /path/to/target

# Verificar depois
ls -la /path/to/target

Proximas Leituras