Wpis z mikrobloga

TL;DR: jak zmienić domyślny edytor visudo na emacs pod centos.

Mirki, mam właśnie pierwsze doświadczenia z Centosem. Normalnie siedzę na Ubuntu. W ubuntu robi się to tak:
sudo update-alternatives --config editor (i wyskakuje interfejs, który pokazuje jakie edytory są dostępne, jaki jest w użyciu i pozwala wybrać inny)

Odpaliłem z ciekawości sudo visudo na tej wirtualce. Nie wiem co się stało, jak próbowałem coś zrobić komputer cały czas piszczał, i dopiero jak zagroziłem, że zrestartuję wirtualkę, to udało mi się zamknąć ten dziwny edytor który się tam otworzył. To było jakieś vi czy coś takiego.

I teraz pytanie, co mogę zrobić, żeby przestawić to na emacsa?
W /etc/profile.d/ zrobiłem nowy plik emacs.sh, który eksportuje zmienną visual i editor jako "emacs", ale system dalej używa vim do visudo.
Czy do tego muszę także usunąć dwa skrypty vim.sh oraz vim.csh z katalogu /etc/profile.d ? Bo przy nie podaniu hasła do visudo dostałem dwa razy komunikat o braku uprawnień.

ten skrypt, vim.sh wygląda tak:
if [ -n "$BASHVERSION" -o -n "$KSHVERSION" -o -n "$ZSHVERSION" ]; then
[ -x /usr/bin/id ] || return
ID=/usr/bin/id -u
[ -n "$ID" -a "$ID" -le 200 ] && return
# for bash and zsh, only if no alias is already set
alias vi >/dev/null 2>&1 || alias vi=vim
fi

Boję się trochę, bo nie mam pojęcia co robi, a wygląda trocę poważniej niż moje
export VISUAL="nano"
export EDITOR="nano"_

to usuwać, czy nie?

#linux #centos
  • 13
@grzybosiur: tak w zmiennej VISUAL masz nazwę domyślnego edytora dla systemu, możesz se w konsoli wpisać z palca export VISUAL="vi" i dziala. Tak samo jest w slackware.
@grzybosiur: No to piszę ci, że visudo odpala tylko vi.

A to co napisałeś wcześniej powinno zadziałać. Tylko powinieneś załadować plik albo przelogować się na inną konsolę.

edit
A przepraszam, z opisu visudo

visudo — edit the sudoers file

Mea culpa.
@cruc:
[vagrant@testbox01 ~]$ echo $EDITOR
/bin/emacs
[vagrant@testbox01 ~]$ echo $VISUAL
/bin/emacs
[vagrant@testbox01 ~]$ which vi
alias vi='emacs'
/usr/bin/emacs
[vagrant@testbox01 ~]$ sudo which vi
/bin/vi
@dktr: @Kryspin013: @cruc:
wychodzi na to, że w ramach zabezpieczeń (żeby user nie podmienił zmiennej VISUAL albo EDITOR na jakiś złośliwy program)
gdy używamy sudo, nie są przenoszone zmienne systemowe, poza niektórymi wyjątkami. do tych wyjątków musiałem dopisać w /etc/sudoers

Defaults env_keep += "EDITOR"
może mi ktoś powiedzieć jak się robi ` na klawiaturze? ten przecinek skierowany w prawo.
@grzybosiur: Pod znakiem tyldy masz. Tak sudo nie przenosi zmiennych ale wpis w /etc/profile.d powinien również zadziałać na polecenie dla super usera (w profile.d ustawiasz zmienną EDITOR i VISUAL dla całego systemu). No chyba że nie zrobiłeś reboota.