GNU/Linux >> Belajar Linux >  >> Linux

sudoedit:mengapa menggunakannya di sudo vi?

Saya menemukan pertanyaan ini saat mencari sesuatu yang sama sekali tidak berhubungan, tetapi saya pikir saya akan menambahkan perbedaan penting berikut, yang sejauh ini belum disebutkan sama sekali:sudoedit tidak menjalankan editor Anda sebagai root.

$ sudo vim /etc/farts.conf 

Hanya akan menjalankan vim sebagai root, memungkinkannya untuk membaca file. Sisi negatifnya adalah editor sekarang juga berjalan sebagai root dan dapat melakukan apa saja. Jika Anda hanya ingin mengizinkan pengguna untuk mengedit file konfigurasi dan tidak ada yang lain, sayang sekali, Anda hanya memberi mereka root pada keseluruhan sistem. Tidak ada yang menghalangi saya untuk menelurkan shell dari vim dengan :sh atau :!command , dan karena mereka adalah sub proses, mereka juga akan berjalan sebagai root.

Di sisi lain:

$ sudoedit /etc/farts.conf

benar-benar akan beroperasi secara berbeda. Itu akan membuat salinan dengan nama unik di /tmp dengan izin dikunci hanya untuk pengguna Anda, dan kemudian menelurkan editor Anda secara normal, tanpa hak akses root, pada salinan itu.

Setelah Anda keluar dari editor, itu akan membandingkan file sementara dan file asli, dan dengan aman mengganti yang asli dengan hasil edit Anda jika diubah.

Dalam skenario ini, memungkinkan pengguna untuk mengedit file sistem, tetapi tidak mengizinkan mereka untuk menjalankan biner acak sebagai root atau poke di mana saja pada sistem file.

Itu terutama perbedaan sebenarnya, sisanya yang telah disebutkan hanyalah efek samping yang rapi.


Pertama-tama, sudo vim sudah secara eksplisit menyebutkan editor default Anda, yang tidak diperlukan jika Anda telah mendefinisikannya di $EDITOR . sudoedit menghindarkan Anda dari mendefinisikan editor setiap kali Anda ingin mengedit sesuatu—dan pada sistem multipengguna memungkinkan setiap orang untuk menggunakan editor yang mereka sukai secara pribadi.

Bagaimana? Pertimbangkan sistem di mana pengguna normal hanya mendapatkan sudo hak istimewa untuk mengedit file tertentu. Mereka dilarang menjalankan sudo dengan hal lain sekalipun. Anda harus mengizinkan mereka untuk sudo vi dan sudo vim dan sudo nano dan sudo emacs dan sudo pico (dll). Daripada harus melakukan itu, Anda cukup mengizinkan mereka untuk sudoedit file, dengan pilihan pengaturan $EDITOR untuk apa pun yang mereka suka. (Bayangkan Anda akan memaksa pecinta Emacs untuk menggunakan Vim…)

Masalah lainnya adalah jika $EDITOR Anda disetel ke vim , dan Anda memiliki setelan penyesuaian untuk itu di .vimrc pengguna Anda , setelan tersebut tidak akan digunakan jika Anda menggunakan sudo vim atau sudo $EDITOR . sudoedit namun mempertahankan lingkungan pengguna panggilan, dan juga pengaturan Anda.

Lihat juga:Apa hebatnya sudoedit?


Linux
  1. Bagaimana cara menggunakan perintah su melalui adb shell?

  2. Mengapa seseorang harus menggunakan sudo?

  3. Mengapa kita menggunakan su - dan bukan hanya su?

  1. Mengapa saya menggunakan Linux untuk mengelola studio yoga saya

  2. Linux – Mengapa Kami Menggunakan Su – Dan Bukan Hanya Su?

  3. Mengapa pengeditan core_pattern dibatasi?

  1. Mengapa Sudo Mengabaikan Alias?

  2. Mengapa Saya Tidak Dapat Menggunakan Cd Dalam Skrip Bash??

  3. Ssh – Mengapa Firefox Sangat Lambat Dibanding Ssh?