Sample Header Ad - 728x90

Choice of editor when running under sudo

3 votes
1 answer
1829 views
On an Ubuntu 12.04 machine I've used the alternatives system to set the **editor** to **vim.basic**. I get the correct editor when root but not when I sudo to root and run crontab, and I'm trying to understand why. A bit more detail. The alternative **editor** is currently set to **vim.basic** by manual mode (output trimmed): % sudo update-alternatives --set editor /usr/bin/vim.basic % update-alternatives --display editor editor - manual mode link currently points to /usr/bin/vim.basic /bin/nano - priority 40 slave editor.1.gz: /usr/share/man/man1/nano.1.gz /usr/bin/vim.basic - priority 30 slave editor.1.gz: /usr/share/man/man1/vim.1.gz slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz Current 'best' version is '/bin/nano'. If I sudo to root and edit crontab the editor is vim.basic: % sudo -i % crontab -e # editor is vim; :help shows # *help.txt* For Vim version 7.3. Last change: 2010 Jul 20 EDITOR and SHELL as root: # env | grep -i editor EDITOR=vim # echo $0 -bash However as a normal user if I sudo crontab the editor is nano: % sudo crontab -e # GNU nano 2.2.6 EDITOR and SHELL as normal user: % env | grep -i editor EDITOR=vim % echo $0 zsh Now I'm noticing that **nano** has a higher priority (40) than **vim.basic** (30), so I could change the priority of vim.basic. But that defeats the purpose of **manual mode**. **Update** I've noticed that using **sudo -E** gives the correct editor, implying problem is environment related. That is: sudo crontab -e # nano editor is used sudo -E crontab -e # vim editor is used
Asked by Sonia Hamilton (165 rep)
Sep 11, 2014, 03:02 AM
Last activity: Dec 22, 2024, 06:49 AM