Definir editor padrão para crontab -e invocado com sudo

3

Estou usando o Bash no Debian Squeeze. Acabei de ler este tópico: alterar editor de texto padrão para crontab para vim

Eu exportei ambas as variáveis VISUAL e EDITOR para vim para usuário normal e para raiz. E isso funciona - quando eu digito crontab -e como usuário normal ou root, o crontab executa o vim para edição.

Mas a execução de sudo crontab -e abre o nano.

A execução de sudo echo $EDITOR (ou $VISUAL ) deu vim int output.

    
por Coolmax 23.12.2012 / 12:58

1 resposta

5

Por padrão e por motivos de segurança, sudo não preserva o ambiente do usuário.

Existem várias maneiras de lidar com isso; Para o seu caso específico, recomendo adicionar VISUAL=/usr/bin/vim (e EDITOR=/usr/bin/vim para programas que usam o errado) em /etc/environment .

Segunda escolha, se você tiver uma configuração de sudo permissiva (talvez porque seja apenas você, ou todos os sudoers têm acesso de raiz real), execute visudo e adicione Defaults env_keep="VISUAL EDITOR" para permitir que todos os sudoers especifiquem seus próprios preservar essa variável de ambiente).

Seu arquivo sudo existente já pode ter (ou incluir) uma ou mais instruções env_keep, por exemplo. isso (do exemplo pastebin):

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

O primeiro desses env_keep linhas sobrescreverá quaisquer edições que você fizer acima (atribuição), as outras linhas estenderão a lista ( += ). Para manter tudo funcionando do jeito que você está acostumado e, a menos que você tenha um motivo para alterar o conjunto, recomendamos adicionar uma linha imediatamente após :

Defaults    env_keep += "VISUAL EDITOR"

(Existem outras opções para usar seu editor preferido, mas elas são desnecessariamente complicadas ou excessivamente permissivas e perigosas, então você terá que ler man sudoers , descobrir você mesmo e entender quais os problemas associados ser.)

    
por 02.05.2013 / 18:25