O uso do comando chown é muito constante pelos administradores de sistemas Linux. Trata-se de um acrônimo para “change owner”, ou seja, “alterar o dono”. Tem o papel de modificar as propriedades de arquivos, diretórios ou links. Mais precisamente, o comando chown altera o usuário e grupo no Linux.
O chown possui uma posição totalmente crucial na administração do sistema Linux. Basicamente, possibilita que os usuários alterem as propriedades de arquivos e diretórios conforme suas necessidades.
A estrutura do ambiente operacional Linux é preparada para comportar grandes volumes de usuários.
Além disso, o hábito de utilizar o chown é mais uma vez visto como essencial para manter o gerenciamento organizado.
Podemos imaginar uma empresa com centenas ou milhares de usuários e diversos grupos referentes aos seus departamentos. É preciso que haja vínculos e permissões apropriadas para o que e como cada usuário pode acessar.
A ausência de hierarquia de permissões de um arquivo (usuário e grupo) pode causar falhas de segurança. Por exemplo, tornará os dados vulneráveis a ameaças externas e internas.
Então, veremos no decorrer deste artigo como funciona o chown, de forma mais detalhada e prática possível, com exercícios práticos de uso.
Conteúdo
Introdução ao comando chown
Como aprendemos até aqui, o chown é o comando responsável por alterar as propriedades de um diretório ou arquivo no Linux.
Cada diretório, arquivo e link simbólico existente no Linux pertence a um owner (proprietário) e a um grupo.
Quando algum usuário cria um novo arquivo, diretório ou link é criado, seu proprietário atribuído é o próprio usuário responsável por sua criação.
Assim como no caso do grupo atribuído, que fica definido como o grupo atual ao qual o usuário pertence.
Aliás, no sentido de mudança de grupo existe um outro comando conhecido como chgrp (change group).
O chgrp é responsável por permitir aos administradores de sistemas mudarem o grupo responsável pelo conteúdo envolvido.
Porém, com o intuito de se tornar tudo mais fácil e prático, o chown têm o poder de alterar também os grupos, o que o torna um comando mais robusto.
Perfeito! Mas, agora surgiu uma dúvida. Para essas modificações ocorrerem, somente o usuário que criou o diretório/arquivo ou usuário root são capazes de modificar suas permissões?
A resposta para essa dúvida é: Sim! Para que o comando chown funcione, deve ser executado através usuários com privilégios de super-usuários. Basta acrescentar no início da sintaxe o comumente conhecido popularmente comando sudo.
Agora, iremos nos aprofundar cada vez mais no estudo e utilização do comando. Porém, de forma mais prática e didática.
Uso do comando chown
Considere a execução dos seguintes comandos:
sudo chown almeida_junior relatorio.txt
sudo chown almeida_junior:financeiro relatorio1.txt
sudo chown almeida_junior:financeiro /home/almeida/*
Mas, o que fizemos ao executar estes comandos? Inicialmente, usando o poder de super usuário, o proprietário do arquivo relatorio.txt transferiu a posse do referido arquivo para o usuário designado almeida_junior.
Além disso, alteramos a posse do arquivo, trocando-o para o novo usuário almeida_junior e o novo grupo chamado financeiro.
O uso do caractere “:” serve única e exclusivamente como coluna separadora na sintaxe do comando.
Finalmente, inserimos a instrução -R para que seja possível aplicar o ajuste de forma recursiva. Isso irá alterar o dono de todo o conteúdo que existir em /home/almeida/ para almeida_junior e o grupo financeiro.
Perceba que sequências simples de comandos como estes podem fazer total diferença na organização estrutural do ambiente.
Em suma, por este motivo, precisamos ter atenção e cuidado ao fazermos uso do chown, e isso iremos conferir a seguir.
Exemplos práticos de uso do comando chown
Até aqui fornecemos uma visão geral sobre o uso do comando chown.
Agora, vamos abordar brevemente, porém, frisando sobre o uso de outro comando antes sairmos rodando o chown.
Trata-se do comando ls. Ele é muito utilizado e nos permite ter a visão das propriedades dos arquivos e diretórios antes e depois de rodarmos o chown.
Antes de nós realizarmos as modificações utilizando o chown, é altamente recomendado executarmos o comando ls. Pois, precisamos descobrir o dono (usuário e grupo), bem como suas permissões.
Agora, vamos à execução dos comandos e suas saídas (resultados).
Aqui está um exemplo:
ls -l relatorio1.txt
Saída:
Nesse resultado de saída podemos observar que:
-rw-r–r– 1 : trata-se da permissão 644. Éé a permissão padrão em que o Linux atribui a um arquivo uando este é criado. O comando chmod é indicado para alterar somente as permissões de um arquivo.
almeida_junior: é o nome do usuário e atual owner do arquivo relatorio1.txt
financeiro: é o nome do grupo no qual foi definido para ter acesso ao arquivo relatorio1.txt
Veremos em seguida como mudar o owner do arquivo “contatos.txt” para a usuária carla_neves, do grupo administracao.
sudo chown carla_neves:administracao contatos.txt
Saída:
Vamos exercitar com mais outros exemplos.
1. Praticando a mudança de grupo de um arquivo
Vamos iniciar checando como estão as propriedades do arquivo com a ajuda do comando ls. Em seguida, vamos alterar o que desejamos.
ls -l orcamento.txt
Saída:
Acima, podemos observar que o arquivo pertence ao usuário root e ao grupo root.
sudo chown :financeiro orcamento.txt
Saída após a execução do comando:
Agora, podemos ver que o arquivo continua a pertencer ao usuário root, porém, está fazendo parte do grupo financeiro.
2. Mudar apenas o owner de um arquivo específico
Suponhamos que este tenha como owner o root e queiramos alterá-lo para o usuário carla_neves, proceda conforme a seguir:
ls -l dados.txt
Saída:
sudo chown --from=root carla_neves dados.txt
Então, essa será a saída após nós executarmos o executado:
Executá-lo dessa forma é muito útil quando há vários arquivos dentro de um único diretório. Porem, desejamos conceder propriedade e permissão de acesso a apenas um ou poucos arquivos a um determinado usuário.
3. Visualizar as alterações feitas através do comando chown
Sabermos quais foram as alterações feitas através do comando chown é muito útil. Principalmente se precisamos analisar uma dificuldade ou investigar alguma ação suspeita.
Fazemos isto utilizando a opção -v (verbose).
Vejamos o exemplo:
ls -l relatorio1.txt
Saída:
sudo chown -v root:admin relatorio1.txt
Então, essa será a saída gerada quando nós executamos o comando:
Dessa forma, o arquivo passou a ter novo owner e novo grupo e acompanhamos em tempo real o resultado do comando que executamos.
4. Replicar as propriedades de um arquivo para outro
Para realizarmos uma cópia das propriedades de um arquivo e a utilizarmos para outro arquivo, é uma tarefa bastante simples. Sem falar que facilita bastante quando queremos tornar a tarefa menos repetitiva.
Experimente executar os seguintes passos:
ls -l contatos.txt orcamento.txt
Saída:
sudo chown --reference=contatos.txt orcamento.txt
ls -l contatos.txt orcamento.txt
Saída:
Enfim, podemos ver acima o novo resultado de saída mostrando que o arquivo orçamento.txt herdou as propriedades de proprietário e grupo existentes no arquivo contatos.txt.
Isto graças ao parâmentro –reference, que foi responsável por copiar e replicar as propriedades de um para o outro.
5. Outras opções disponíveis no comando chown no Linux
Opção ‘-c’ (changes)
Ele é semelhante ao parâmetro -v, o parâmetro -c serve para retornar o resultado apenas quando a mudança é feita.
Exemplo:
sudo chown -c almeida_junior relatorio1.txt
Saída:
Opção ‘-f’ (silent)
Quando utilizado, este parâmetro é responsável por eliminar grande parte das mensagens de erro que possam vir a ocorrer.
Por exemplo, quando o usuário administrador não possui privilégios para modificar as propriedades do grupo e exibe um erro. O parâmetro -f pode contornar a situação, pois permite alterar a propriedade de forma forçada e silenciosa.
Uso do comando chown para Links
Nós utilizamos o comando chown também para mudar as propriedades de links simbólicos. E um link simbólico nós utilizamos quando queremos referenciar o caminho de um arquivo físico existente, como se fosse um atalho.
O comando responsável por criar links simbólicos é o ln. Então, vamos criar um link para o arquivo contatos.txt. Para criar, vamos utilizar a seguinte sintaxe:
sudo ln -s contatos.txt symlink
Enfim, podemos conferir as informações de propriedade do link simbólico criado, para isso, usamos o comando ls -l. O resultado deverá ser semelhante a este:
E como podemos alterar as propriedades de owner do link simbólico?
Basta executar a seguinte sintaxe de comando:
sudo chown -h novousuario:novogrupo symlink
Mas em nosso caso:
sudo chown -h www-data:www-data contatos.txt
Essa sintaxe irá alterar as propriedades do arquivo contatos.txt. Por fim, o resultado exibido pelo ls -l será este:
Se desejarmos alterar apenas o owner dono do link simbólico, deveremos utilizar o parâmetro -h. Então, A sintaxe do comando então ficará:
sudo chown -h novousuario symlink
Mas em nosso caso:
sudo chown -h ubuntu symlink
Conferindo o resultado com ls -l veremos que o owner do link simbólico mudou. Porém, as propriedades do arquivo ao qual o link está apontando permaneceram as mesmas: