Di dalam sistem Linux Anda, ada file bernama “sudoers”. Ini adalah file teks yang mengontrol level terdalam dari sistem izin Anda. Ini mengizinkan atau menolak pengguna untuk mendapatkan akses pengguna super dan memiliki beberapa preferensi khusus untuk sudo.
Apa itu file sudoers?
File sudoers adalah file teks yang dapat Anda temukan di direktori “/etc” (cari tahu lebih lanjut tentang direktori Linux di sini). Tujuan utamanya adalah untuk mengontrol bagaimana sudo
bekerja pada mesin Anda dan menentukan pengguna dan grup mana yang memiliki kemampuan untuk berjalan dengan izin pengguna super.
Selain itu, file sudoers juga dapat mengizinkan pengguna tertentu untuk menjalankan perintah sebagai pengguna lain dalam sistem.
Misalnya, jika Anda memiliki server web, Anda dapat mengonfigurasi sudoers untuk hanya mengizinkan pengguna lain menjalankan perintah sebagai “www-data”.
Kapan Saya Perlu Mengedit File sudoers?
Saat Anda pertama kali menginstal sistem Linux seperti Ubuntu, penginstal akan secara otomatis menambahkan pengguna pertama ke file sudoers. Ini agar Anda dapat segera menjalankan tugas administratif dengan sudo
perintah setelah instalasi.
Namun, jika Anda membuat akun pengguna baru, itu tidak akan memiliki izin pengguna super secara default. Jika Anda perlu memberinya izin pengguna super, Anda perlu mengedit file sudoers dan menambahkan akun pengguna ini ke dalamnya.
Bagaimana saya bisa mengedit sudoers?
Jangan pernah mengedit file sudoers di editor teks biasa. Ini dapat menyebabkan pengeditan simultan dan file yang rusak, berpotensi menolak akses admin apa pun. Sudoers harus diedit dengan menjalankan visudo
di Terminal, seperti:
Perhatikan bahwa Anda perlu menggunakan sudo
untuk berlari visudo
. Ini akan membuka file sudoers di editor teks default di Terminal yang Nano secara default.
Apa yang Dapat Dilakukan Mengubah File sudoers?
Seperti dibahas di atas, tugas utama file sudoers adalah menentukan pengguna dan grup mana yang dapat menggunakan sudo. Namun, file ini juga berisi beberapa opsi yang memungkinkan Anda mengonfigurasi perilaku sudo.
Beberapa opsi ini mencakup kemampuan untuk mengubah durasi waktu habis dari eskalasi hak istimewa. Ada juga opsi untuk mengubah editor visudo default dan hardening dasar seperti menggunakan pty.
Ubah batas waktu sudo
Secara default, memasukkan kata sandi Sudo Anda meningkatkan izin Anda hingga Anda menutup shell atau keluar. Ini bisa jadi tidak aman, dan beberapa mungkin lebih suka memasukkan kata sandi mereka setiap kali mereka menggunakan sudo.
- Lari
sudo visudo
seperti yang disebutkan di atas. - Tekan Alt + / untuk menavigasi ke akhir dokumen. Jika Anda menggunakan Vi atau Vim, tekan Menggeser + G sebagai gantinya.
- Buat baris baru di bagian bawah dokumen dan tambahkan baris berikut:
Defaults timestamp_timeout=0
Ini akan mengatur batas waktu sudo Anda menjadi nol detik, jadi Anda akan memiliki izin sudo selama nol detik setelah Anda menjalankan perintah pertama. Jika Anda lebih suka interval yang berbeda, masukkan nilai itu dalam hitungan detik.
Anda juga dapat mengatur batas waktu ke “-1”, yang memberi Anda masa tenggang tak terbatas. Jangan lakukan itu. Ini adalah cara praktis untuk secara tidak sengaja mematikan sistem Anda suatu hari nanti.
- Tekan Ctrl + Hai untuk menyimpan dan Ctrl + x untuk keluar. Di sisi lain, jika Anda menggunakan Vi atau Vim, Anda dapat menekan ESC lalu ketik
:wq
untuk keluar.
Batasi Siapa yang Dapat Menggunakan Sudo dan Untuk Apa
Jika Anda memiliki banyak pengguna yang mengakses sistem yang sama melalui shell, Anda dapat mengontrol akses mereka dengan menyetel nilai di sudo.
Membuat aturan khusus untuk pengguna sangat mudah. Aturan izin dalam file sudoers terlihat seperti ini:
username hostlist = (userlist) commandlist
- Itu
username
bidang menunjukkan pengguna mana dalam sistem yang akan menerapkan aturan ini. - Itu
hostlist
memberitahu sudo untuk menerapkan aturan ini pada daftar host sistem yang dikenal sudo. Secara default, sudo hanya mengenali mesin lokal sebagai host-nya. - Itu
userlist
memberi tahu Sudo akun pengguna mana yang dapat diganti dengan bidang nama pengguna. - Terakhir,
commandlist
adalah daftar yang dipisahkan koma yang menunjukkan program mana dalam sistem yang nama pengguna dapat dijalankan sebagai pengguna tersebut.
Mengetahui hal itu, perhatikan contoh berikut:
Baris ini mengizinkan pengguna ramces untuk menggantikan dirinya sebagai pengguna mana pun dan menjalankan perintah apa pun pada host mana pun. Hal ini karena ALL
adalah nilai khusus dalam file sudoers yang berarti “tidak ada batasan”.
Namun, ini juga berarti bahwa menyetel aturan ini untuk pengguna Anda berbahaya. Ini karena ini akan memungkinkan pengguna untuk menjalankan perintah apa pun dan mengakses file apa pun sebagai pengguna mana pun.
Dengan demikian, aturan yang lebih tepat dan lebih aman dapat terlihat seperti ini:
Dalam hal ini, pengguna ramces masih dapat berjalan sebagai root tetapi tidak dapat menggantikan dirinya sebagai pengguna lain.
Membatasi Root di Pengguna dan Grup
Untuk kontrol lebih lanjut, Anda dapat menambahkan baris seperti berikut, yang hanya mengizinkan pengguna “ramces” untuk berjalan apt update
.
ramces ALL=(root) /usr/bin/apt update
Letakkan a %
di depan pengguna, dan itu akan menentukan grup. Baris di bawah ini akan memungkinkan setiap pengguna dalam grup “admin” untuk memiliki izin tingkat root. Ini akan menjadi grup seperti yang ditentukan oleh grup izin sistem Anda.
Pengerasan sudoers dengan use_pty
Penggunaan lain dari file sudoers adalah hanya menggunakan sudo di lingkungan kotak pasir terbatas.
Ini bisa sangat membantu jika Anda menjalankan sudo di mesin tidak aman yang terus-menerus terhubung ke internet. Mengetahui hal itu, Anda dapat menggunakan fitur ini dengan membuka file “/etc/sudoers” dan memasukkan baris kode berikut:
Menggunakan Sudo Tanpa Kata Sandi
Opsi lain yang dapat Anda aktifkan di file sudoers adalah kemampuan untuk menjalankan sudo tanpa kata sandi. Ini bisa sangat berguna jika Anda mendapati diri Anda terus-menerus menjalankan perintah superuser di mesin Anda.
Untuk mengaktifkannya, yang perlu Anda lakukan adalah menambahkan satu tag dalam aturan pengguna Anda saat ini:
ramces ALL = (root) NOPASSWD: ALL
Jika Anda perhatikan, perbedaan utama antara ini dan contoh di atas adalah penambahan NOPASSWD:
.
Ubah editor visudo
Terakhir, tergantung pada versi Linux yang Anda jalankan, ada dua cara utama untuk mengubah editor.
Untuk Ubuntu, Anda ingin menjalankan perintah Terminal di bawah ini:
sudo update-alternatives --config editor
Anda akan melihat sesuatu seperti berikut:
There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 10 manual mode Press enter to keep the current choice[*], or type selection number: 3
Jika Anda ingin memilih vim sebagai editor visudo Anda dari default nano, Anda akan menekan nomor pilihannya 3
lalu tekan Enter.
Untuk varian Linux lainnya, Anda perlu menambahkan baris baru ke file “~/.bashrc” seperti yang terlihat di bawah ini:
Kemudian simpan file tersebut. Itu akan mengatur editor visudo Anda ke vim.
Selamat! Anda sekarang tahu bagaimana melakukan pengeditan dasar pada file sudoers Anda. Tidak hanya itu, Anda juga sekarang memiliki ide dasar tentang cara kerja sudo. Serta opsi tambahan yang dapat Anda aktifkan melalui file sudoers.
Jika semua pembicaraan ini membuat Anda penasaran tentang Linux. Anda dapat memeriksa artikel ini di mana kita berbicara tentang beberapa distribusi Linux-libre terbaik yang dapat Anda instal hari ini.
Pertanyaan yang Sering Diajukan
1. Saya mendapat pesan kesalahan “(nama pengguna) tidak ada di file sudoers”. Apakah instalasi Sudo saya rusak?
Tidak semuanya. Ini terjadi setiap kali pengguna yang Anda gunakan tidak memiliki entri aturan di file sudoers. Ini bisa jadi karena pengguna itu sendiri tidak ada di sudoers atau tidak ada di grup mana pun yang ada di sudoers.
Mengetahui hal itu, memperbaikinya relatif mudah. Pertama, Anda harus masuk ke akun root Anda. Anda dapat melakukannya dengan mengetik su
dan kemudian memasukkan kata sandi root. Dari sana, Anda dapat mengetik sudo visudo
untuk memasukkan file sudoers.
Setelah selesai, hal terakhir yang perlu Anda lakukan adalah menambahkan nama pengguna Anda ke file sudoers. Misalnya, ini adalah kutipan dari file sudoers untuk akun baru bernama alice:
2. Apa saja masalah dalam membuat aturan pengguna khusus?
Salah satu masalah yang mungkin Anda temui saat membuat aturan khusus adalah dengan wildcard. Ini adalah simbol yang dapat Anda gunakan untuk membuat aturan yang dapat diterapkan ke beberapa kasus. Misalnya, ini adalah aturan yang memungkinkan admin grup untuk dijalankan cat
dalam file apa pun di “/ var” sebagai root.
%admin ALL: (root) /bin/cat /var/*
Masalahnya adalah karakter wildcard ini juga bisa menggantikan spasi. Dengan demikian, mengaturnya dengan cara ini juga dapat memungkinkan perintah seperti ini:
sudo cat /var/log.1 /home/bob/secret.txt
Karena itu, adalah praktik yang baik untuk menghindari penggunaan wildcard saat membuat aturan. Sebagai gantinya, Anda bisa menggunakan su
untuk tugas satu kali atau atur izin file sehingga sudo tidak diperlukan.
3. Apakah mungkin untuk mencegah sudo mengirim email sistem setiap kali saya menjalankan sebagai root?
Ya! Anda dapat dengan mudah mencegah sudo mengirim email dengan menggunakan tag NOMAIL. Misalnya, ini adalah entri aturan untuk akun pengguna saya di file sudoers:
ramces ALL: (root) NOMAIL: ALL
Kredit gambar: pahlawan dengan sirkuit komputer oleh 123RF
Apakah artikel ini bermanfaat?
Berlangganan newsletter kami!
Tutorial terbaru kami dikirim langsung ke kotak masuk Anda