Como configurar o visudo para usar um editor diferente do padrão no Fedora?

28

O Fedora 14 usa o vi por padrão quando se executa o visudo. Existe uma maneira de mudar isso para outra coisa?

tshepang
fonte

Respostas:

44

A adição Defaults editor=/path/to/editorno 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.

Tok
fonte
Could you please provide the command(s) that you executed?
Tok
@Tshepang - Você também pode definir o editor de padrões = / usr / bin / nano no arquivo sudoers para especificar um editor. Neste ponto, estou assumindo que você deseja usar o nano, conforme especificado no seu comentário anterior.
Tok
@Tshepang - Sim, no entanto, é provável que este produto tenha sido criado com o pacote --with-env-editor.
Tok
1
@Tok: Em que sistema não visudohonra $VISUALe $EDITOR?
Gilles 'SO- stop be evil'
3
@Gilles - com base na minha leitura, o Ubuntu alterou recentemente os parâmetros de compilação de seu pacote sudo para não incluir --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.
Tok
11

Os seguintes

  • funciona para distribuições que usam alternatives(originalmente apenas o Debian e seus garfos, mas agora a maioria das principais distribuições, IIUC).
  • tem a vantagem de que

    1. você não precisará editar sudoersprimeiro com seu editor padrão
    2. funciona mesmo se package =sudo não tenha sido construído com--with-env-editor

Em uma linha de comando:

  1. Corre sudo update-alternatives --config editor
  2. Escolha o editor desejado no menu (modo de texto). Se você não vir o editor que deseja, provavelmente precisará instalá-lo; cancele, faça isso e repita.

sudo visudo agora deve abrir o editor de sua escolha.

TomRoche
fonte
7

Um programa unix normal que deseja chamar um editor executará o programa cujo nome esteja na variável EDITORou VISUALenvironment e, se a variável estiver desabilitada, um padrão dependente do sistema. Muitos, mas não todos, programas verificam ambos EDITORe 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 $PATHou 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 é tradicionalmentevinano

visudoverifica ambos VISUALe 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).

Gilles 'SO- parar de ser mau'
fonte
3

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.

Eric Leschinski
fonte
2

visudousa a EDITORvariável, por exemplo.

sudo EDITOR=/path/to/editor visudo
Bhavin
fonte