Como trocar a permissão de um arquivo no Linux

Dicas - 19/Abr/2021 - por Allan Siqueira

Às vezes temos alguma situação onde por algum motivo não conseguimos alterar um arquivo em nossa máquina, seja um arquivo de texto ou um código de um projeto que é preciso dar manutenção. Uma das causas mais comuns para esse problema é a permissão de arquivos e diretórios.

Todo arquivo e diretório em nosso computador tem um usuário que é dono dele. Você pode ler mais sobre permissionamento de arquivos em sistemas Unix aqui. Consideremos a situação em que estou tendo problemas para conseguir editar o arquivo script.rb, e meu usuário na máquina é allan.

Para vermos as propriedades dos arquivos usaremos comandos no terminal, o comando que estamos utilizando aqui é o ls (que lista os arquivos e diretórios da pasta atual) com o parâmetro -l (que imprime os resultados desse comando em uma lista):

$ ls -l
total 4
-rw-rw-r--  1 allan allan         0 Apr 19 14:12 arquivo.txt
drwxrwxr-x  2 allan allan   4096    Apr 19 14:12 diretorio
-rw-rw-r--  1 root  root          0 Apr 19 14:12 script.rb

Deste retorno, focaremos nos seguintes dados:

allan allan arquivo.txt
allan allan diretorio
root  root   script.rb

As duas primeiras informações são respectivamente o usuário e o grupo que é dono do arquivo listado. O que podemos ver deste retorno é que nosso usuário (allan) não é dono do nosso arquivo script.rb. Para conseguirmos editar livremente este arquivo, precisamos transferir a sua propriedade para nosso usuário allan. Podemos fazer isso através do comando chown

Dica: Para ajudar a memorizá-lo, podemos pensar nesse comando em duas partes:

  • ch => change => alterar;
  • own => ownership => propriedade;
  • O comando altera a propriedade de um arquivo ou diretório.

Atenção: Para alterar a propriedade dos arquivos normalmente precisamos de acesso ao superusuário de nosso computador, e os próximos comandos vão ser rodados com auxílio do comando sudo.

Para transferirmos a propriedade deste arquivo, vamos rodar o seguinte comando:

$ sudo chown allan script.rb

Onde os argumentos do comando chown são respectivamente: [novo dono do arquivo] [nome do arquivo].

Assim, quando rodamos novamente o comando ls -l podemos observar que a propriedade do arquivo mudou para o usuário allan:

$ ls -l
-rw-rw-r--  1 allan allan         0 Apr 19 14:12 arquivo.txt
drwxrwxr-x  2 allan allan   4096    Apr 19 14:12 diretorio
-rw-rw-r--  1 allan root          0 Apr 19 14:12 script.rb

Com isso a mensagem de erro não deve aparecer mais e já podemos manipular este arquivo sem ter problemas. :)

Foto de perfil do autor
Allan Siqueira

Dev na Rebase