Cara Mengedit Fail Sistem Dengan SudoEdit Memelihara Persekitaran Pengguna Pengguna
- 2281
- 482
- Mr. Ramon Runolfsson
Di Linux dan sistem operasi berasaskan Unix yang lain, sudo digunakan untuk menjalankan program dengan keistimewaan pengguna lain, sering berakar. Apabila kita perlu mengubah suai fail yang memerlukan keistimewaan pentadbiran untuk diedit, jika kita melancarkan editor teks kegemaran kita secara langsung dengan sudo, ia akan berjalan tanpa penyesuaian dan tetapan yang kita gunakan apabila kita memanggilnya secara normal, kerana persekitaran pengguna yang memohon adalah tidak dipelihara. Dalam tutorial ini kita akan melihat bagaimana kita dapat menyelesaikan masalah ini dengan mudah dan bagaimana kita dapat mengubah suai fail sistem dengan selamat dengan menggunakan sudoedit.
Dalam tutorial ini anda akan belajar:
- Cara mengedit fail sistem menggunakan sudoedit
- Apakah langkah -langkah yang dilakukan apabila fail diedit dengan sudoedit
- Cara menetapkan editor lalai yang digunakan oleh sudo
Keperluan perisian dan konvensyen yang digunakan
Kategori | Keperluan, konvensyen atau versi perisian yang digunakan |
---|---|
Sistem | Pengedaran bebas |
Perisian | sudo |
Yang lain | Tiada |
Konvensyen | # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa |
Tingkah laku standard sudo
Majoriti pengagihan Linux dikonfigurasikan supaya cara utama untuk mencapai keistimewaan akar adalah menggunakan sudo. Penggunaan sudo memberi kita satu siri keistimewaan su
, yang utama ialah keistimewaan tertentu yang dapat diberikan kepada satu pengguna tanpa harus memberinya akses akar penuh.
Sudo boleh disesuaikan dengan halus melalui /etc/sudoers
fail; Oleh kerana fail ini sangat penting, ia harus diedit menggunakan Visudo
perintah, yang memastikan tiada ralat sintaks hadir sebelum perubahan disimpan.
Dalam majoriti kes, apabila arahan dijalankan dengan sudo, persekitaran pengguna yang menggunakan tidak dipelihara, jadi sebagai contoh, jika kami memanggil editor kami menggunakan sudo untuk mengubah suai fail sistem yang dimiliki oleh root, ia akan menjalankan mengabaikan persediaan peribadi kami. Ini agak menyusahkan, dan dalam kes -kes tertentu yang menjalankan editor dengan keistimewaan yang meningkat dapat menimbulkan beberapa masalah keselamatan. Mari lihat apa yang boleh kita lakukan, sebaliknya.
Masalahnya: Editor dilancarkan tanpa tetapan yang ditentukan oleh pengguna
Katakan kita mesti mengedit fail dengan keistimewaan pentadbiran, katakan contohnya /etc/fstab
, di mana maklumat statik mengenai sistem fail disimpan di linux. Sekiranya kami menggunakan editor teks kegemaran kami dan gunakannya secara langsung menggunakan sudo,
penyesuaian yang kami tetapkan (biasanya melalui dotfiles yang sesuai yang disimpan di kami Rumah
direktori) tidak akan dihormati, kerana persekitaran pengguna yang tidak dipelihara tidak dipelihara.
Mari lihat contoh. Katakan editor kegemaran kami adalah Vim dan di kami ~/.vimrc
fail kami memasuki Tetapkan nombor
Arahan yang menyebabkan nombor garis dipaparkan. Sekiranya kita mengedit /etc/fstab
Fail yang menggunakan editor secara langsung dengan sudo, kita dapat melihat tetapan tidak berkesan:
$ sudo vim /etc /fstab
Fail akan dibuka di editor, dan yang berikut adalah apa yang akan dipaparkan. Kandungan fail tidak penting kepada kami dalam kes ini, jadi ia dipotong:
# #/etc/fstab # # sistem fail yang boleh diakses, dengan rujukan, dikekalkan di bawah '/dev/disk/'. # Lihat halaman lelaki fstab (5), findfs (8), mount (8) dan/atau blkid (8) untuk maklumat lanjut. # # Setelah mengedit fail ini, jalankan 'Sistem Daemon-Reload' untuk mengemas kini unit sistem # yang dihasilkan dari fail ini. # /dev /mapper /fingolfin_vg-root_lv /ext4 lalai, x-systemd.Peranti-timeout = 0 1 1 UUID = B308FBE5-68A6-4142-82DE-BA1DC3380484 /BOOT EXT2 DEFAULTS 1 2 [...]
Seperti yang anda dapat lihat nombor baris tidak dipaparkan. Di atas hanyalah contoh dan mungkin penyesuaian editor kami jauh melebihi itu. Bagaimana kita dapat menyelesaikan masalah ini?
Penyelesaiannya: Menggunakan sudoedit
Untuk menyelesaikan masalah yang digambarkan di atas, kita hanya boleh menggunakan sudoedit
bukan sudo
. Menggunakan sudoedit
adalah bersamaan dengan menggunakan sudo
dengan -e
pilihan, yang pendek untuk --edit
. Seperti yang dinyatakan dalam sudo
manual, pilihan ini pada dasarnya bermaksud: "edit fail dan bukannya menjalankan arahan".
Apabila strategi ini digunakan, dan pengguna yang memohon dibenarkan melakukan tindakan oleh dasar sistem, satu siri langkah akan dilakukan. Pertama sekali, a Sementara Salinan fail yang ingin kami edit dibuat. Fail sementara akan dimiliki oleh pengguna yang dipanggil, jadi tidak ada keistimewaan pentadbiran yang diperlukan untuk mengubahnya.
Fail sementara akan dibuka dalam editor teks lalai. Editor lalai ditetapkan melalui beberapa pembolehubah, yang dibaca dalam urutan tertentu. Mereka adalah:
- Sudo_editor
- VISUAL
- Editor
Bergantung pada pengedaran dan shell yang kami gunakan, nilai pembolehubah ini boleh ditetapkan secara kekal di ~/.BASH_PROFILE
(hanya diperolehi oleh shell bash) atau ~/.profil
fail. Untuk menetapkan vim
Sebagai editor lalai kami, sebagai contoh, kami akan menulis:
Eksport sudo_editor =/usr/bin/vim
Perhatikan bahawa kami menggunakan eksport
shell terbina dalam sebelum definisi pembolehubah: diperlukan untuk mengeksport pembolehubah itu sendiri kepada semua proses anak shell. Perubahan tidak akan berkesan: Kita harus logout dan log masuk lagi,
atau sumber fail yang diubahsuai "secara manual":
$ sumber ~/.BASH_PROFILE
Sekiranya tiada pembolehubah ini ditetapkan, editor pertama yang dinyatakan sebagai nilai editor
pilihan dalam fail sudoers (/etc/sudoers
) akan digunakan.
Sebaik sahaja fail yang kami diubah suai disimpan (ia akan dibuat dari awal jika belum wujud), dan editor ditutup, ia akan disalin kembali ke kedudukan asal, dan fail sementara akan dikeluarkan. Pengguna akan diminta ke
Sahkan tindakan jika fail yang diedit menjadi kosong; Ini adalah langkah keselamatan tambahan dan sangat berguna, yang boleh menghalang kesilapan bencana:
sudoedit: truncate /etc /fstab ke bait sifar? (y/n) [n] n sudoedit: tidak menimpa/etc/fstab
Sejak ketika menggunakan sudoedit
bukan sudo
Persekitaran Pengguna Pengguna dipelihara dan failnya diedit sebagai pengguna sendiri dan bukan sebagai akar, kami akan dapat menggunakan editor kami dengan semua penyesuaian yang kami tetapkan, termasuk plugin dimuatkan.
Kesimpulan
Dalam tutorial ini, kami belajar bagaimana mungkin untuk mengedit fail yang memerlukan keistimewaan pentadbiran untuk diubahsuai sambil mengekalkan persekitaran pengguna yang menggunakan sudoedit bukannya sudo. Kami melihat apakah kelebihan pendekatan ini, apakah langkah -langkah yang dilakukan ketika ia diterima pakai, dan bagaimana menetapkan editor lalai yang digunakan oleh sudo.
Tutorial Linux Berkaitan:
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Perkara yang hendak dipasang di Ubuntu 20.04
- Menguasai Gelung Skrip Bash
- Fail Konfigurasi Linux: 30 teratas yang paling penting
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
- Mengendalikan input pengguna dalam skrip bash
- Cara mengeluarkan bloatware dari Samsung Android Mobile anda ..
- Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
- Cara membuat Modify dan Padam Akaun Pengguna di Linux
- « Cara Mengurus Hos Maya Dinamik Dengan Apache dan Modul Mod_VHOST_ALIAS
- Cara mengambil tangkapan skrin menggunakan Maim di Linux »