GNU/Linux >> Belajar Linux >  >> Linux

Menjadi Root Dari Dalam Vim?

Terkadang saya mulai mengedit file konfigurasi di /etc menggunakan Vim, tetapi lupa menggunakan sudo untuk memulai Vim. Hasil yang tak terhindarkan kemudian adalah bahwa setelah menyelesaikan pengeditan saya, saya menemukan pemberitahuan yang menakutkan bahwa saya tidak memiliki izin untuk menyimpan file.

Sebagian besar pengeditan cukup kecil sehingga saya hanya keluar dari Vim dan melakukan semuanya lagi sebagai root. Tentu saja saya dapat menyimpan ke lokasi tempat saya dapat menulis dan menyalinnya sebagai root, tetapi itu juga agak mengganggu.

Tapi saya yakin ada cara yang lebih mudah untuk menjadi root atau menggunakan sudo dari dalam Vim, tanpa harus membuang perubahan. Jika metode ini tidak bergantung pada sudo sedang disiapkan untuk pengguna yang akan menjadi lebih baik.

Jawaban yang Diterima:

sudo tidak dapat mengubah pengguna efektif dari proses yang ada, itu selalu membuat proses baru yang memiliki hak istimewa yang lebih tinggi dan shell asli tidak terpengaruh. Ini adalah dasar dari desain UNIX. Saya paling sering hanya menyimpan file ke /tmp sebagai solusi. Jika Anda benar-benar ingin menyimpannya secara langsung, Anda dapat mencoba menggunakan fitur Vim yang dapat menyalurkan file ke proses lain. Coba simpan dengan perintah ini:

:w !sudo dd of=%

Diuji dan berfungsi. Vim kemudian akan meminta Anda untuk memuat ulang file, tetapi itu tidak perlu:Anda cukup menekan o untuk menghindari memuat ulang dan kehilangan riwayat pembatalan Anda. Anda bahkan dapat menyimpan ini ke perintah/fungsi Vim atau bahkan mengikatnya ke kunci untuk akses mudah, tetapi saya akan menyerahkannya sebagai latihan kepada pembaca.


Linux
  1. Apa perbedaan antara root dan sudo?

  2. Bagaimana cara menjalankan perintah Vim dari shell?

  3. Sudo vs root; ada perbedaan nyata?

  1. Bagaimana Internal Sudo Bekerja?

  2. Perbedaan Antara Pengguna Sudo Dan Pengguna Root?

  3. Jalankan ifconfig tanpa sudo

  1. Bagaimana Cara Membuat Skrip A Sebagai Root Secara Retroaktif?

  2. Ubah Kata Sandi Root Dengan Sudo, Tanpa Su?

  3. Bagaimana cara menempel dari buffer dalam mode ex vim?