Respostas:
A adição Defaults editor=/path/to/editor
no arquivo sudoers fará com que o visudo use o editor especificado para alterações.
Além disso, se o seu pacote sudo foi construído com --with-env-editor, como é o padrão em algumas distribuições Linux, você também pode definir a variável de ambiente EDITOR executando export EDITOR=/path/to/editor
. Executado na linha de comando, isso será revertido assim que a sessão do shell for encerrada. A definição da variável em ~ / .bashrc ou / etc / profile fará com que a alteração persista.
visudo
honra $VISUAL
e $EDITOR
?
--with-env-editor
, o que significa aqui recentemente na memória da internet. Além disso, o pacote sudo mudou seu padrão há algum tempo para usar o vi como seu editor padrão, o que acredito coincidir com uma mudança no comportamento referente à aceitação de variáveis ambientais. Não tenho uma linha do tempo clara de como, quando ou se esses eventos se relacionam nesse momento.
Os seguintes
alternatives
(originalmente apenas o Debian e seus garfos, mas agora a maioria das principais distribuições, IIUC).tem a vantagem de que
sudoers
primeiro com seu editor padrãosudo
não tenha sido construído com--with-env-editor
Em uma linha de comando:
sudo update-alternatives --config editor
sudo visudo
agora deve abrir o editor de sua escolha.
Um programa unix normal que deseja chamar um editor executará o programa cujo nome esteja na variável EDITOR
ou VISUAL
environment e, se a variável estiver desabilitada, um padrão dependente do sistema. Muitos, mas não todos, programas verificam ambos EDITOR
e VISUAL
; a distinção é obsoleta há muito tempo (uma vez que você executaria , embora algumas distribuições tenham mudado isso para um editor mais amigável para iniciantes, como .EDITOR
executava um teletipo eVISUAL
em um terminal "de vidro" ...), portanto, você deve definir os dois para o mesmo valor. Há alguma discordância sobre se o conteúdo da variável deve ser o caminho completo para um executável, um nome de executável pesquisado $PATH
ou um snippet de shell, portanto, você deve manter um caminho para um executável que não contenha nenhum metacaractere de shell. O padrão do sistema quando nenhuma variável é definida é tradicionalmentevi
nano
visudo
verifica ambos VISUAL
e EDITOR
(isso pode ser compilado, presumivelmente para dissuadir o root de usar um editor cuja segurança o fabricante de distribuição não confia, mas mesmo o OpenBSD não faz isso).
Essas etapas permitem definir o editor como vi para visudo no Ubuntu 12.04, provavelmente funcionam para a maioria das distribuições:
Comando de emissão:
sudo visudo
Isso abre o arquivo sudoers no nano. Perto do topo, você verá esta linha:
Defaults env_reset
Adicione a seguinte linha abaixo da linha acima:
Defaults editor=/usr/bin/vi
Salve o arquivo e saia. Reabra o visudo como seu usuário padrão:
sudo visudo
O arquivo sudoers agora é aberto no VI.