Estou tentando editar o sources.list usando o editor vi, mas obtendo o seguinte erro ao salvar o arquivo:
/etc/apt/sources.list" E212: Can't open file for writing
Estou tentando editar o sources.list usando o editor vi, mas obtendo o seguinte erro ao salvar o arquivo:
/etc/apt/sources.list" E212: Can't open file for writing
Respostas:
For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.
O Vim possui um sistema de ajuda embutido. Eu apenas citei o que diz :h E212
.
Você pode editar o arquivo como um superusuário como sudo vim FILE
. Ou, se você não quiser sair da sessão vim existente (e agora tiver direitos sudo adequados), poderá emitir:
:w !sudo tee % > /dev/null
O que salvará o arquivo.
HTH
Em vez de perder todas as suas alterações e reabrir com o sudo. Veja esta demonstração de como salvar essas alterações:
Demonstração de instalação única para criar um arquivo somente leitura de propriedade raiz para um usuário mais baixo:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Primeiro abra o arquivo como usuário normal:
vi temp.txt
Em seguida, faça algumas alterações no arquivo, ele avisa que é somente leitura. Use este comando.
:w !chmod 777 %
Em seguida, escreva o arquivo:
:wq!
As permissões são expandidas e o arquivo é salvo. Você precisa do ponto de exclamação porque está editando um arquivo raiz como um usuário menor.
Explicação do que esse comando faz:
O: w significa escrever o arquivo. O estrondo significa começar a interpretar como concha. chmod significa alterar permissões, 777 significa permissões totais em todos os lugares. A porcentagem significa o nome do arquivo atual.
Aplica a mudança. E pergunta se você deseja recarregar. Pressione "O" para "Ok". Não recarregue ou você perderá suas alterações.
Para mim, havia uma solução bastante simples. Eu estava tentando editar / criar um arquivo em uma pasta que não existia. Como eu já estava na pasta, estava tentando editar / criar um arquivo.
ie pwd folder/file
e estava digitando
sudo vim folder/file
e, obviamente, estava procurando a pasta na pasta e falhando ao salvar.
Ou talvez você esteja em um FS montado apenas para leitura
Eu referenciei o Zsolt no nível 2, insiro:
:w !sudo tee % > /dev/null
e, em seguida, na minha situação, ainda não consigo modificar o arquivo, por isso solicitou que adicione "!". então eu insiro
:q!
então funciona
para mim trabalhou alterando o sistema de arquivos de Somente leitura antes de executar o vim:
bash-3.2# mount -o remount rw /
Ao abrir o arquivo no vim, use sudo. ou seja: sudo vim textfile. isso resolverá o problema.
alterar usuário para root
sodu su -
navegue para etc
vi sudoers
procure o usuário root na seção privilégio do usuário. você vai entender
root ALL=(ALL:ALL) ALL
faça a mesma entrada para o seu nome de usuário. se o seu nome de usuário for 'myuser', adicione
myuser ALL=(ALL:ALL) ALL
vai parecer
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
Salve isso. altere o usuário root para o seu usuário. Agora tente o mesmo em que você estava recebendo o problema de sudoers
Pode ser possível que o arquivo que você está acessando tenha uma cópia de troca (ou versão de troca) já existente no mesmo diretório
Portanto, primeiro veja se existe ou não um arquivo oculto.
Por exemplo, consulte o seguinte tipo de arquivo
.system.conf.swp
Usando o comando
ls -a
E então, exclua-o usando ...
rm .system.conf.swp
Normalmente, recomendo começar a usar privilégios de superusuário usando ...
sudo su
Eu recebi esse erro quando usei git rm
um arquivo em um diretório.
Eu estava em algo como ~ / gitRepo / code / newFeature
No newFeature, havia apenas um arquivo. Eu fiz um git rm
nesse arquivo e tentei criar um novo arquivo myNewFile usando o vi.
O Ubuntu me mostrou ainda estar dentro do diretório newFeature, mas na verdade git rm
havia removido o diretório inteiro.
Eu tive que sair do vi, navegar em um diretório e recriar o diretório newFeature.