Básico de chown e chgrp - Alterando a Propriedade de Arquivos no Linux

Básico 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 Rápido

  • Alterar dono --> sudo chown user file
  • Alterar dono e grupo --> sudo chown user:group file
  • Alterar somente o grupo --> sudo chgrp group file
  • Recursivo (diretório 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 saída 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 Usuário dono
4a root Grupo dono

Sintaxe do chown

Use chown para alterar o usuário dono. Você precisa de sudo para alterar a propriedade de arquivos que não são 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 único 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 usuário 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 é o padrão atual.

Sintaxe do chgrp

chgrp é o comando dedicado para alterar o grupo. É 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 explícita a intenção de alterar somente o grupo em um script ou histórico de comandos.

Alterações Recursivas com -R

Adicione -R para aplicar a alteração a todos os arquivos e subdiretórios dentro de um diretório.

$ 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 diretório alvo. Verifique o conteúdo com ls -la antes de executar para evitar alterações indesejadas.

Padrões 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 usuário de aplicação

$ 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 Soluções

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 usuário ou grupo especificado não 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

Próximas Leituras