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 -laantes 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