Compreendendo as permissões do Linux: as diferenças entre chmod e chown
Se você está apenas começando a aprender sobre permissões de arquivo em um sistema Linux, os comandos chmod e chown serão o seu ponto de partida para conceder ou revogar permissões de arquivo para contas de usuário. chmod e chown são comandos completamente diferentes, mas andam de mãos dadas quando se trata de modificar permissões de arquivos no sistema de arquivos Linux. O resumo básico é que chown
pode alterar o proprietário de um arquivo, e chmod
pode alterar as permissões do arquivo, mas esta explicação é apenas o começo.
Para obter a capacidade de editar completamente as permissões de um arquivo, será necessário dominar os comandos chmod
e chown
. Mas não se preocupe, nenhum deles é tão complicado e ambos requerem apenas um pouco de conhecimento para entender.
Neste tutorial, explicaremos as diferenças entre os comandos chmod
e chown
em um sistema Linux. Você aprenderá a sintaxe do comando por meio de exemplos de ambos os comandos e verá como usá-los em conjunto para obter as permissões e configurações de segurança adequadas que deseja para os arquivos em seu sistema Linux. Junte-se a nós abaixo para saber mais.
Neste tutorial você aprenderá:
- Como alterar a propriedade do arquivo com o comando
chown
- Como alterar as permissões de arquivo com o comando
chmod
- Qual é a diferença entre os comandos
chmod
echown
do Linux?
Comandos chown vs. chmod do Linux
Os comandos chmod
e chown
do Linux são as principais ferramentas usadas para controlar permissões de arquivos no Linux. Ambos andam de mãos dadas e devem ser usados em conjunto para controlar efetivamente quais usuários têm a capacidade de usar determinados arquivos.
Existem três permissões principais no Linux:
- Ler – a capacidade de abrir um arquivo e ler seu conteúdo
- Gravar – a capacidade de editar e salvar alterações em arquivos
- Executar – a capacidade de executar um arquivo, como um script Bash
Esses três tipos de permissões podem então ser delegados a três tipos de usuários diferentes:
- Proprietário – o usuário ou proprietário do arquivo
- Grupo – um grupo de usuários que possui permissões no arquivo
- Outros – todos os outros usuários que não são proprietários nem estão no grupo
Digamos que temos o seguinte arquivo:
$ ls -l example_file.txt
-rwxrw-r-- 1 linuxconfig admins 22 Oct 2 18:00 example_file.txt
A saída nos diz que:
- O proprietário do arquivo é
linuxconfig
, com permissões de leitura, gravação e execução - O grupo do arquivo é
admins
, com permissões de leitura e gravação - Todos os outros usuários têm apenas permissões de leitura no arquivo
A seguir, vamos ver como usar esses dois comandos para alterar quais usuários podem interagir com nossos arquivos no Linux.
Como usar o chown
Para atribuir permissões a usuários individuais ou a um grupo de usuários, primeiro precisamos usar o comando chown
para especificar quem deve ser o proprietário e o grupo do arquivo. Depois de aplicar essas configurações, poderemos editar as permissões do proprietário e do grupo com chmod
.
Vamos começar definindo o proprietário do arquivo
example_file.txt
para o usuáriolinuxconfig
:$ sudo chown linuxconfig:linuxconfig example_file.txt
Observe que usamos o comando
sudo
aqui, que é necessário para alterar a propriedade do arquivo. Também usamos a sintaxelinuxconfig:linuxconfig
para alterar o usuário e o grupo simultaneamente. Isto é efetivamente o mesmo que não conceder permissões de grupo, já que o grupolinuxconfig
contém apenas um usuário –linuxconfig
.Ou se quisermos configurar o proprietário
linuxconfig
e o grupoadmins
podemos executar:$ sudo chown linuxconfig:admins example_file.txt
O comando
chgrp
pode ser usado se você quiser alterar apenas o grupo de um arquivo, e não o proprietário. Neste exemplo mudamos o grupo paraadmins
:$ sudo chgrp admins example_file.txt
Como usar o chmod
Agora que temos o proprietário e o grupo configurados corretamente, podemos usar o comando chmod
para modificar as permissões de arquivo necessárias para o proprietário, grupo e outros usuários.
O comando chmod
pode aceitar muitas sintaxes e opções, e estaria fora do escopo deste tutorial cobrir todas elas. Em vez disso, consulte nosso tutorial do comando chmod para obter uma lista de vários exemplos. Nesta seção, cobriremos apenas o básico para ajudá-lo a entender como o chmod
é diferente do chown
.
O comando a seguir alterará as permissões do proprietário, do grupo e de outros usuários:
$ chmod 760 example_file.txt
- O
7
é equivalente às permissões de leitura, gravação e execução e concederá essas permissões ao proprietário - O
6
é equivalente às permissões de leitura e gravação e irá concedê-las ao grupo - O
0
equivale a nenhuma permissão e as atribui a todos os outros usuários
Desta forma, podemos ver como os comandos chown
e chmod
se complementam para obter as permissões que precisamos para cada arquivo. O comando chmod
controla as permissões para todos os usuários, e o comando chown
nos permite atribuir permissões de uma forma mais granular, configurando as contas do proprietário e do grupo.
Considerações finais
Neste tutorial, aprendemos sobre as diferenças entre os comandos chown
e chmod
em um sistema Linux. Ambos os comandos se complementam para dar aos usuários a capacidade de delegar permissões de leitura, gravação e execução aos usuários no sistema. Esses dois comandos devem ser compreendidos e dominados para evitar que os arquivos sejam acessados por usuários não intencionais.