# O comando `chown`

O comando `chown` (*change owner*) altera o proprietário de um arquivo ou diretório. Ele também pode alterar o grupo proprietário.

## Sintaxe

```
chown [OPÇÕES] PROPRIETÁRIO[:GRUPO] ARQUIVO...
```

Em geral, a alteração da propriedade de arquivos de outros usuários requer privilégios administrativos, normalmente obtidos por meio de `sudo`.

## Alterar somente o proprietário

Considere um arquivo cujo proprietário atual seja `ana`:

```
ls -l relatorio.txt
```

Saída ilustrativa:

```
-rw-r--r-- 1 ana professores 2048 Oct 19 19:30 relatorio.txt
```

Para mudar o proprietário para `carlos`:

```
sudo chown carlos relatorio.txt
```

Depois da operação, o arquivo terá `carlos` como proprietário. O grupo proprietário permanece inalterado.

## Alterar proprietário e grupo

Para alterar simultaneamente o proprietário para `carlos` e o grupo para `alunos`:

```
sudo chown carlos:alunos relatorio.txt
```

A sintaxe utiliza dois-pontos (`:`) para separar o usuário do grupo.

## Alterar somente o grupo com `chown`

O proprietário pode ser omitido, mantendo-se os dois-pontos:

```
sudo chown :alunos relatorio.txt
```

Esse comando altera apenas o grupo proprietário.

Para a mesma finalidade, existe o comando específico `chgrp`, estudado na próxima seção.

## Alteração recursiva

A opção `-R` aplica a alteração ao diretório indicado e aos arquivos e subdiretórios encontrados em sua hierarquia.

```
sudo chown -R carlos:alunos /srv/projetos
```

Esse comando altera a propriedade dos objetos abrangidos pela operação recursiva.

Cuidado: a alteração recursiva de propriedade pode afetar muitos arquivos e comprometer serviços ou aplicações. Antes de executá-la, confira o caminho e os objetos que serão modificados.

## Resumo do `chown`

| Comando                                    | Efeito                                                   |
| ------------------------------------------ | -------------------------------------------------------- |
| `chown carlos arquivo.txt`                 | Altera o proprietário                                    |
| `chown carlos:alunos arquivo.txt`          | Altera proprietário e grupo                              |
| `chown :alunos arquivo.txt`                | Altera somente o grupo                                   |
| `chown -R carlos:alunos diretorio/`        | Altera recursivamente a propriedade                      |
| `chown --reference=modelo.txt destino.txt` | Usa o proprietário e o grupo de um arquivo de referência |

A opção `--reference` é útil para reproduzir a propriedade de outro arquivo.
