Ao executar este comando
sudo vim filename
você cria um novo arquivo, cujo proprietário é o usuário root. Você pode confirmar isso executando ls -al
. A partir da saída, você pode ver que o proprietário e o grupo ao qual o arquivo pertence estão definidos como raiz.
Se você tentar editá-lo com seu usuário normal, você não poderá, porque o arquivo não pertence ao seu usuário. Novamente, você pode ler o arquivo, mas não gravar nele, por causa das permissões. Você pode marcá-los a partir da linha de comando com o comando ls -al
. Deve ser algo como:
-rw-r--r-- 1 root root 4 Apr 9 07:40 filename
a primeira parte -rw-r--r--
significa que somente o proprietário pode ler e gravar no arquivo, usuários do mesmo grupo e outro usuário só podem ler o arquivo.
Aqui está um bom diagrama que descreve o significado das permissões:
Se você deseja editar o arquivo, deve fazê-lo como usuário root. Isso é quase sempre a melhor maneira:
sudo vim filename
Se você deseja editá-lo como usuário normal, pode atribuir permissões adicionais a ele (mas não deve fazer isso com arquivos do sistema fora de seu diretório inicial - use sudo
para editá-los):
sudo chmod 777 filename
Desta forma, o arquivo será legível, gravável e executável de todos os usuários. Isso raramente é uma boa ideia.
Para conceder APENAS permissões de gravação a todos os outros usuários:
sudo chmod o+w filename
Caso contrário, se você quiser que o arquivo seja gravável apenas por você, você pode alterar o proprietário para você:
sudo chown yourusername:root filename