Bagaimana cara mengatur visudo untuk menggunakan editor yang berbeda dari default pada Fedora?

28

Fedora 14 menggunakan vi secara default ketika seseorang menjalankan visudo. Apakah ada cara untuk mengubahnya ke hal lain?

tepang
sumber

Jawaban:

44

Menambahkan Defaults editor=/path/to/editorfile sudoers akan menyebabkan visudo menggunakan editor yang ditentukan untuk perubahan.

Selain itu, jika paket sudo Anda telah dibuat dengan --with-env-editor, seperti default pada beberapa distribusi Linux, Anda juga dapat mengatur variabel lingkungan EDITOR dengan mengeksekusi export EDITOR=/path/to/editor. Dilakukan pada baris perintah, ini akan kembali segera setelah sesi shell diakhiri, pengaturan variabel dalam ~ / .bashrc atau / etc / profile akan menyebabkan perubahan berlanjut.

Tok
sumber
Bisakah Anda memberikan perintah yang Anda jalankan?
Tok
@Tshepang - Anda juga dapat mengatur Editor default = / usr / bin / nano di file sudoers untuk menentukan editor. Pada titik ini saya mengasumsikan bahwa Anda ingin menggunakan nano sebagaimana ditentukan dalam komentar Anda sebelumnya.
Tok
@Tepanget - Ya, bagaimanapun, ini kemungkinan merupakan produk dari pembuatan paket menggunakan --with-env-editor.
Tok
1
@ Tok: Pada sistem apa tidak visudomenghormati $VISUALdan $EDITOR?
Gilles 'SANGAT berhenti menjadi jahat'
3
@Gilles - berdasarkan pembacaan saya Ubuntu baru-baru ini mengubah parameter build dari paket sudo mereka untuk tidak disertakan --with-env-editor, baru-baru ini di sini berarti dalam memori internet. Selain itu paket sudo mengubah default mereka beberapa waktu lalu untuk menggunakan vi sebagai editor default mereka yang saya percaya bertepatan dengan perubahan perilaku sehubungan dengan penerimaan variabel lingkungan. Saya tidak memiliki garis waktu yang jelas tentang bagaimana, kapan, atau jika peristiwa-peristiwa ini berhubungan satu sama lain saat ini.
Tok
11

Pengikut

  • berfungsi untuk distro yang menggunakan alternatives(awalnya hanya Debian dan forks-nya, tetapi sekarang sebagian besar distro, IIUC).
  • memiliki kelebihan itu

    1. Anda tidak perlu mengedit sudoersterlebih dahulu dengan editor default-nya
    2. kerjanya bahkan jika paket = sudotelah tidak dibangun dengan--with-env-editor

Dari baris perintah:

  1. Menjalankan sudo update-alternatives --config editor
  2. Pilih editor yang diinginkan dari menu (mode teks). Jika Anda tidak melihat editor yang Anda inginkan, Anda mungkin perlu menginstalnya; batalkan, lakukan itu, dan ulangi.

sudo visudo sekarang harus membuka editor pilihan Anda.

TomRoche
sumber
7

Program unix normal yang ingin memohon editor akan menjalankan program yang namanya ada dalam variabel lingkungan EDITORatau VISUAL, dan jika variabel tidak disetel, default yang bergantung pada sistem. Banyak, tetapi tidak semua, program memeriksa keduanya EDITORdan VISUAL; perbedaannya sudah lama usang (sekali Anda akan menjalankan EDITORpada teletype dan VISUALpada terminal "kaca" ...) sehingga Anda harus mengatur keduanya ke nilai yang sama. Ada beberapa ketidaksepakatan tentang apakah konten variabel harus path lengkap ke file executable, nama executable yang dicari $PATH, atau potongan shell, jadi Anda harus tetap berpegang pada path ke file executable yang tidak mengandung metacharacter shell. Sistem default ketika variabel tidak diatur secara tradisionalvi, meskipun beberapa distribusi telah mengubah ini menjadi editor yang lebih ramah bagi pemula seperti nano.

visudomemeriksa keduanya VISUALdan EDITOR(ini dapat dikompilasi, mungkin untuk mencegah root dari menggunakan editor yang keamanan pembuat distribusinya tidak percaya, tetapi bahkan OpenBSD tidak melakukan ini).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
3

Langkah-langkah ini izinkan saya mengatur editor ke vi untuk visudo pada Ubuntu 12.04, mereka mungkin bekerja untuk sebagian besar distribusi:

Perintah masalah:

sudo visudo

Ini membuka file sudoers di nano. Di dekat bagian atas Anda akan melihat baris ini:

Defaults    env_reset

Tambahkan baris berikut di bawah baris di atas:

Defaults    editor=/usr/bin/vi

Simpan file dan keluar. Buka kembali visudo sebagai pengguna default Anda:

sudo visudo

File sudoers sekarang terbuka di VI.

Eric Leschinski
sumber
2

visudomenggunakan EDITORvariabel, misalnya.

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