Não, você não pode conceder a um programa em execução permissões que ele não tem quando ele é iniciado. Essa seria a falha de segurança conhecida como "escalação de privilégios".
Duas coisas que você pode fazer:
- Salve em um arquivo temporário em / tmp ou em qualquer lugar, feche o editor e, em seguida, despeje o conteúdo do arquivo temporário no arquivo que estava editando. %código%. Observe que não é recomendado usar
sudo cp $TMPFILE $FILE
para isso por causa da alteração na propriedade e das permissões de arquivo que provavelmente causará, você apenas deseja substituir o conteúdo do arquivo e não o próprio espaço reservado para o arquivo. - Conte ao editor com Ctrl + z , altere a propriedade ou as permissões do arquivo para poder escrever nele e use
mv
para voltar ao editor e Salve . Não esqueça de corrigir as permissões!
¹ Alguns editores podem fazer isso iniciando um novo processo com permissões diferentes e transferindo os dados para esse processo para salvar. Veja, por exemplo, esta questão relacionada para obter outras soluções em editores avançados que permitem escrever o buffer de arquivo para um pipe de processo. O Nano não tem a capacidade de iniciar um novo processo ou passar dados para outros processos, por isso é deixado de fora desta parte.