Tidak disarankan untuk menggunakan sudo
aplikasi grafis seperti gedit
, seperti dijelaskan di tautan ini . Dengan demikian, saya cenderung untuk menggunakan vim
dengan sudo
.
Baru-baru ini saya perhatikan bahwa saya ~/.viminfo
dimiliki oleh root pada instalasi Ubuntu 16.04 (Xenial Xerus) yang cukup baru, jadi saya bertanya-tanya apakah Vim dianggap grafis atau apakah ada masalah lain dengan pemanggilan sudo vim
. Setelah mengubah kepemilikan untuk diri saya sendiri melalui:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
dan kemudian menjalankan sudo vim
saya tidak dapat ~/.viminfo
dimiliki oleh root. Namun, saya yakin itu baru saja dimiliki oleh root.
Apakah tidak disarankan untuk memohon sudo vim
?
:w !sudo tee %
Jawaban:
Ya, aman.
Masalahnya
sudo gedit
adalah karena aplikasi GUI menggunakan file tertentu, seperti~/.cache/dconf
, dan setelah ditinggikangedit
, file tersebut menjadi milik root. Nah, file tertentu itu berisi pengaturan khusus pengguna untuk aplikasi GUI, termasuk desktop, jadi jika sistem tidak dapat membaca pengaturan itu - itu buruk. IIRC pengguna tidak dapat memulai desktop tertentu. Data file terbaru penggunarecently-used.xbel
juga terpengaruh.Di sisi lain, Vim tidak memiliki masalah itu. Tidak menggunakan database terkait GUI dan tidak memasukkan apa pun ke dalamnya
recently-used.xbel
. Itu dibuat untuk tujuan konsol saja, meskipun gVim juga ada. Bahkan, pada beberapa sistem, Vim adalah satu-satunya pilihan editor Anda. Jadi lebih aman daripada gedit karena tidak menyebabkan masalah yang sama. Anda masih menyunting sebagai root di kedua kasus, sehingga Anda dapat menyebabkan masalah dengan pengeditan yang tidak benar.Menurut posting blog ini :
Sementara penulis menunjukkan itu dapat menyebabkan masalah, tidak ada yang kompleks - hanya
chown
file kembali ke diri Anda sendiri.Lihat juga:
sumber
sudo vim
untuk mendapatkan salinan vim berjalan sebagai root, lalu:!/bin/sh
untuk mendapatkan shell root.sudo /bin/sh
? Secara praktis, jika pengguna sudah memiliki akses root, mereka tidak perlu menggunakan trik rumit./etc/sudoers
berkas. Anda tidak perlu melakukan%wheel ALL=(ALL) ALL
-sudo
konfigurasi memungkinkan nuansa yang jauh lebih dari itu./bin/bash
ke~/.viminfo
, menempatkan setuid di atasnya dan menunggu user untuk menjalankansudo vim
untuk memilikinya chowned ke akar?Ini juga mungkin digunakan
sudoedit
untuk mencapai ini; itu membuka salinan sementara file di editor Anda, dengan editor Anda berjalan seperti Anda. Dari halaman manual :Ini berfungsi baik dengan vim (ini yang biasanya saya lakukan) dan saya membayangkan itu akan membiarkan Anda menggunakan gedit juga. Ada beberapa batasan keamanan .
sumber
Tautan ini sangat lama (2013). Ini merekomendasikan menggunakan
gksudo
ataugksu
untuk aplikasi grafis tetapi keduanya menjadi usang. Namun kemudian jawaban yang diterima juga menyarankansudo -H
.Konsensus umum dalam komunitas Ask Ubuntu baru-baru ini adalah menggunakan:
Satu-satunya masalah tetap yang
sudo
tidak memiliki profil untuk pengaturan tab, ekstensi, bungkus kata, nama font, ukuran font, dll. Anda dapat mewarisi ini dari profil pengguna Anda meskipun dengan skrip pembungkus seperti ini: Bagaimana saya bisa menyinkronkan root saya gedit dengan preferensi pengguna gedit saya?sumber
Ya, aman digunakan
sudo vim
. Masalah yang saya temui adalahHarus keluar dari file dan membuka kembali
sudo vim
untuk dapat mengedit.Memiliki root
vimrc
sebagai default, bukan hal berguna yang saya kustomisasi.Berikut adalah fungsi yang dapat Anda masukkan
bashrc
ke Anda untuk memungkinkan vim untuk secara otomatis sudo jika Anda tidak dapat mengedit file secara normal.sumber
sudo
secara default mempertahankan$HOME
variabel lingkungan, yang berarti yangsudo vim
akan menggunakan .vimrc kustom Anda, dan itu juga berarti bahwasudo vim
akan mengubah kepemilikan~/.viminfo
menjadi root: root dan menyebabkan Anda merasa tidak nyaman.viminfo
.Tidak apa-apa menggunakan vi sebagai root. Akan ada saat-saat ketika Anda perlu mengedit file yang memerlukan hak istimewa sudo atau root, seperti mengubah file antarmuka jaringan Anda, atau mungkin mengedit file konfigurasi sshd Anda. Menggunakan root untuk hal-hal grafis buruk karena orang akan terhubung ke IRC atau menelusuri web sebagai root. Jika mereka mendapatkan virus saat melakukannya, itu akan memiliki akses root penuh.
sumber
Sesuatu yang belum disebutkan dalam jawaban lain adalah menjalankan vim dengan root akan memberikan hak akses root ke plugin apa pun yang telah Anda instal. Jadi, pertanyaan apakah aman untuk dijalankan sebagai root atau tidak tergantung pada apakah Anda memercayai pengembang plugin tersebut (atau kontributor proyek mereka) untuk tidak memiliki sistem Anda pada intinya.
Vim biasanya diperiksa oleh pengelola paket di semua distribusi linux, sehingga mudah dipercaya. Namun, vim plugins biasanya dipasang langsung dari repo GitHub dan biasanya memiliki lebih sedikit audit pengguna (mungkin nihil). Dengan kata lain, tidak ada proses pemeriksaan dengan mereka.
Jika Anda tidak memuat plugin saat di root, maka saya kira menjalankan sebagai root tergantung pada apakah Anda mempercayai pengembang vim. Anda dapat melewati keharusan mempercayai mereka, dengan menggunakan sudoedit yang dibuat oleh pengembang sudo yang sama, orang-orang yang sudah kami percayai dengan akses root. GKFX dan NieDzejkob telah menyebutkan mengapa sudoedit ideal. Selain itu Anda tidak perlu mempercayai akses root ke orang lain selain pengembang sudo, Anda dapat memuat semua plugin yang sudah Anda percayai dengan akun pengguna normal Anda.
sumber
sudoedit /etc/apt/sources.list
dengan plugin yang terinstal terpasang, itu mungkin dapat menyisipkan repositori berbahaya dan mendapatkan akses root saat Anda menjalankan pembaruan lagi pula. Saya yakin ada daftar panjang file yang dilindungi root yang menerapkan sesuatu yang serupa. Dan tentu saja, tidak setiap virus membutuhkan root; orang dapat mengambil detail bank Anda dengan tidak lebih dari ekstensi browser.