Jak ustawić visudo, aby używał innego edytora niż domyślny w Fedorze?

28

Fedora 14 domyślnie używa vi, gdy uruchamia się visudo. Czy istnieje sposób, aby zmienić to na coś innego?

tshepang
źródło

Odpowiedzi:

44

Dodanie Defaults editor=/path/to/editorpliku sudoers spowoduje, że visudo użyje określonego edytora do zmian.

Dodatkowo, jeśli twój pakiet sudo został zbudowany za pomocą --with-env-editor, tak jak jest to domyślne w niektórych dystrybucjach Linuksa, możesz również ustawić zmienną środowiskową EDITOR, wykonując export EDITOR=/path/to/editor. Wykonane w wierszu poleceń, zostanie cofnięte, gdy tylko sesja powłoki zostanie zakończona, ustawienie zmiennej w profilu ~ / .bashrc lub / etc / spowoduje, że zmiana zostanie utrzymana.

Tok
źródło
Czy możesz podać polecenia, które wykonałeś?
Tok
@Tshepang - Możesz także ustawić Defaults editor = / usr / bin / nano w pliku sudoers, aby określić edytor. W tym momencie zakładam, że chcesz używać nano, jak określono we wcześniejszym komentarzu.
Tok
@Tshepang - Tak, jednak jest to prawdopodobnie efekt zbudowania pakietu przy użyciu --with-env-editor.
Tok
1
@Tok: W jakim systemie nie visudohonoruje się $VISUALi $EDITOR?
Gilles „SO- przestań być zły”
3
@Gilles - na podstawie mojego czytania Ubuntu ostatnio zmienił parametry kompilacji swojego pakietu sudo, aby go nie uwzględniać --with-env-editor, ostatnio tutaj oznacza to w pamięci Internetu. Dodatkowo jakiś pakiet sudo zmienił już jakiś czas domyślny, tak aby używać vi jako domyślnego edytora, co moim zdaniem zbiegło się ze zmianą zachowania w zakresie akceptacji zmiennych środowiskowych. Nie mam jasnego harmonogramu tego, w jaki sposób, kiedy lub czy te wydarzenia odnoszą się obecnie do siebie.
Tok
11

Następujące

  • działa dla używanych dystrybucji alternatives(pierwotnie tylko Debian i jego forks, ale teraz większość głównych dystrybucji, IIUC).
  • ma tę zaletę, że

    1. nie musisz sudoersnajpierw edytować w domyślnym edytorze
    2. to działa, nawet jeśli pakiet = sudoma nie został zbudowany z--with-env-editor

Z wiersza poleceń:

  1. Biegać sudo update-alternatives --config editor
  2. Wybierz żądany edytor z menu (tryb tekstowy). Jeśli nie widzisz odpowiedniego edytora, prawdopodobnie musisz go zainstalować; anuluj, zrób to i powtórz.

sudo visudo powinien teraz otworzyć wybrany edytor.

TomRoche
źródło
7

Normalny program uniksowy, który chce wywołać edytor, uruchomi program, którego nazwa znajduje się w zmiennej środowiskowej EDITORlub VISUAL, a jeśli zmienna nie jest ustawiona, domyślna zależna od systemu. Wiele programów, ale nie wszystkie, sprawdzają zarówno, jak EDITORi VISUAL; rozróżnienie jest dawno przestarzałe (po uruchomieniu EDITORna teletype i VISUALna „szklanym” terminalu…), więc powinieneś ustawić obie te same wartości. Istnieje pewna różnica zdań co do tego, czy zawartość zmiennej powinna być pełną ścieżką do pliku wykonywalnego, szukanej nazwy pliku wykonywalnego $PATHlub fragmentu powłoki, więc powinieneś trzymać się ścieżki do pliku wykonywalnego nie zawierającego metaznaku powłoki. Domyślne ustawienie systemowe, gdy żadna zmienna nie jest ustawiona, jest tradycyjnievi, choć niektóre dystrybucje zmieniły to na bardziej przyjazny dla początkujących edytor, taki jak nano.

visudosprawdza oba VISUALi EDITOR(można to skompilować, prawdopodobnie w celu zniechęcenia roota do używania edytora, którego bezpieczeństwu twórca dystrybucji nie ufa, ale nawet OpenBSD tego nie robi).

Gilles „SO- przestań być zły”
źródło
3

Te kroki pozwalają mi ustawić edytor na vi dla visudo na Ubuntu 12.04, prawdopodobnie działają one w większości dystrybucji:

Polecenie wydania:

sudo visudo

Spowoduje to otwarcie pliku sudoers w nano. U góry zobaczysz tę linię:

Defaults    env_reset

Dodaj następujący wiersz poniżej powyższego wiersza:

Defaults    editor=/usr/bin/vi

Zapisz plik i wyjdź. Otwórz ponownie visudo jako domyślny użytkownik:

sudo visudo

Plik sudoers otwiera się teraz w VI.

Eric Leschinski
źródło
2

visudoużywa EDITORna przykład zmiennej.

sudo EDITOR=/path/to/editor visudo
Bhavin
źródło