7 Cara Mengubah Perintah Sudo Di Linux - Kamplongan

7 Cara Mengubah Perintah Sudo di Linux

Kalian tahu sudo, kan? Kalian pasti pernah menggunakannya pada suatu saat.

Bagi sebagian besar pengguna linux, ini adalah alat ajaib yang memberi Kalian kemampuan untuk menjalankan perintah apa pun sebagai root atau beralih ke pengguna root.

Tapi itu hanya setengah kebenaran. Lihat, sudo bukanlah perintah mutlak. sudo adalah alat yang dapat dikonfigurasi sesuai kebutuhan dan kemauan Kalian.

Ubuntu, Debian, dan distro lainnya telah dikonfigurasi sebelumnya dengan sudo sedemikian rupa sehingga memungkinkan mereka menjalankan perintah apa pun sebagai root. Itu membuat banyak pengguna percaya bahwa sudo adalah semacam saklar ajaib yang langsung memberi Kalian akses root.

Misalnya, sysadmin dapat mengkonfigurasinya sedemikian rupa sehingga pengguna yang merupakan bagian dari grup ‘dev’ tertentu hanya dapat menjalankan perintah nginx dengan sudo. Pengguna tersebut tidak akan dapat menjalankan perintah lain dengan sudo atau beralih ke root.

Jika hal ini mengejutkan Kalian, itu karena Kalian mungkin telah menggunakan sudo selamanya tetapi tidak pernah terlalu memikirkan mekanisme dasarnya.

Kami tidak akan menjelaskan cara kerja sudo dalam tutorial ini. Kami akan menyimpannya untuk beberapa hari yang lain.

Pada artikel ini, Kalian akan melihat bagaimana berbagai aspek sudo dapat diubah. Ada yang berguna dan ada pula yang tidak berguna tetapi menyenangkan.

🚧

Harap jangan mulai mengikuti semua perubahan yang disebutkan secara membabi buta. Kalian salah melakukannya dan Kalian mungkin mendapatkan sistem yang kacau sehingga tidak dapat menjalankan sudo. Untuk sebagian besar, baca saja dan nikmati. Dan jika Kalian memutuskan untuk mencoba beberapa penyesuaian, buat cadangan pengaturan sistem sehingga Kalian dapat mengembalikan semuanya ke normal.

1. Selalu gunakan visudo untuk mengedit konfigurasi sudo

Perintah sudo dikonfigurasi melalui /etc/sudoers mengajukan.

Meskipun Kalian dapat mengedit file ini dengan editor teks berbasis terminal favorit Kalian seperti Micro, NeoVim dll, Kalian TIDAK HARUS lakukan itu.

Mengapa? Karena sintaksis apa pun yang salah dalam file ini akan membuat sistem Kalian kacau sehingga sudo tidak berfungsi. Yang mungkin membuat sistem linux Kalian tidak berguna.

Gunakan saja seperti ini:

sudo visudo

Itu visudo perintah secara tradisional membuka /etc/sudoers file di editor Vi. Ubuntu akan membukanya di Nano.

Simpan file di editor nano

Keuntungannya di sini adalah itu visudo melakukan pemeriksaan sintaksis ketika Kalian mencoba menyimpan perubahan Kalian. Ini memastikan Kalian tidak mengacaukan konfigurasi sudo karena sintaksis yang salah.

visudo memeriksa sintaks sebelum menyimpan perubahan ke file sudoers
visudo memeriksa sintaks sebelum menyimpan perubahan ke file sudoers

Baiklah! Sekarang Kalian dapat melihat beberapa perubahan konfigurasi sudo.

💡

Kami akan merekomendasikan membuat cadangan file/etc/sudoers. Sehingga jika Kalian tidak yakin dengan perubahan apa yang Kalian buat atau jika Kalian mau kembali ke konfigurasi sudo default, Kalian dapat menyalinnya dari cadangan.

sudo cp /etc/sudoers /etc/sudoers.bak

2. Tampilkan tanda bintang saat memasukkan kata sandi dengan sudo

Kami memiliki perilaku ini yang diwarisi dari UNIX. Saat Kalian memasukkan kata sandi untuk sudo di terminal, itu tidak menampilkan apa pun. Kurangnya umpan balik visual membuat pengguna baru linux berpikir sistem mereka hang.

Sesepuh mengatakan bahwa ini adalah fitur keamanan. Hal ini mungkin terjadi pada abad yang lalu, namun menurut saya kita tidak perlu melanjutkannya lagi. Itu hanya pendapat saya.

Bagaimanapun, beberapa distribusi, seperti linux Mint, telah mengubah sudo sedemikian rupa sehingga menampilkan tanda bintang saat Kalian memasukkan kata sandi.

Hal itu lebih sesuai dengan perilaku yang kita lihat di mana pun.

Untuk menampilkan tanda bintang dengan sudo, jalankan sudo visudo dan cari barisnya:

Defaults env_reset

Ubah menjadi:

Defaults env_reset,pwfeedback
Tambahkan tampilan tanda bintang kata sandi sudo

💡

Kalian mungkin tidak menemukan baris Defaults env_reset di beberapa distribusi seperti Arch. Kalau begitu, tambahkan saja baris baru dengan teks Defaults env_reset, pwfeedback

Sekarang, jika Kalian mencoba menggunakan sudo dan meminta kata sandi, Kalian akan melihat tanda bintang saat memasukkan kata sandi.

Tampilkan tanda bintang saat memasukkan kata sandi sudo

Jika Kalian melihat ada masalah dengan kata sandi yang tidak diterima meskipun sudah benar dengan aplikasi grafis seperti pusat perangkat lunak, kembalikan perubahan ini. Beberapa postingan forum lama menyebutkannya. Tapi saya belum menemukannya.

3. Tingkatkan batas waktu kata sandi sudo

Jadi, Kalian menggunakan sudo untuk pertama kalinya dan ia meminta kata sandi. Namun untuk perintah selanjutnya dengan sudo, Kalian tidak perlu memasukkan password dalam waktu tertentu.

Sebut saja sudo password timeout (atau SPT, saya hanya mengada-ada. Jangan menyebutnya begitu 😁).

Distribusi yang berbeda memiliki batas waktu yang berbeda. Bisa 5 menit atau 15 menit.

Kalian dapat mengubah perilaku dan menetapkan batas waktu kata sandi sudo pilihan Kalian.

Edit file sudoer seperti yang Kalian lihat di atas dan cari baris dengan Defaults env_reset dan tambahkan timestamp_timeout=XX ke garis sehingga menjadi seperti ini:

Defaults        env_reset, timestamp_timeout=XX

Dimana XX adalah batas waktu dalam menit.

Jika Kalian memiliki parameter lain seperti umpan balik tanda bintang yang Kalian lihat di bagian sebelumnya, semuanya dapat digabungkan:

Defaults        env_reset, timestamp_timeout=XX, pwfeedback

💡

Demikian pula, Kalian dapat mengontrol batas percobaan ulang kata sandi. Gunakan passwd_tries=N untuk mengubah berapa kali pengguna dapat memasukkan kata sandi yang salah.

4. Gunakan sudo tanpa kata sandi

Baiklah! Jadi Kalian menambah batas waktu kata sandi sudo (atau SPT. Wow! Kalian masih menyebutnya begitu 😛).

Tidak apa-apa. Maksudku siapa yang suka memasukkan kata sandi setiap beberapa menit.

Menambah batas waktu adalah satu hal. Hal lainnya adalah tidak menggunakan semuanya.

Ya, Kalian membacanya dengan benar. Kalian dapat menggunakan sudo tanpa memasukkan kata sandi.

Kedengarannya berisiko dari sudut pandang keamanan, bukan? Memang benar, tetapi ada beberapa kasus asli di mana Kalian (secara produktif) lebih baik menggunakan sudo tanpa kata sandi.

Misalnya, jika Kalian mengelola beberapa server linux dari jarak jauh dan Kalian telah membuat pengguna sudo di server tersebut untuk menghindari penggunaan root sepanjang waktu. Masalahnya adalah Kalian memiliki terlalu banyak kata sandi. Kalian tidak mau menggunakan kata sandi sudo yang sama untuk semua server.

Dalam kasus seperti itu, Kalian hanya dapat mengatur akses SSH berbasis kunci ke server dan mengizinkan penggunaan sudo dengan kata sandi. Dengan cara ini, hanya pengguna yang berwenang yang mengakses server jarak jauh dan kata sandi sudo tidak perlu diingat.

Kami melakukan ini di server pengujian yang saya gunakan di DigitalOcean untuk menguji alat dan layanan sumber terbuka.

Hal baiknya adalah hal ini dapat diizinkan per pengguna. Buka /etc/sudoer file untuk diedit dengan:

sudo visudo

Dan kemudian tambahkan baris seperti ini:

user_name ALL=(ALL) NOPASSWD:ALL

Tentu saja, Kalian perlu menggantinya user_name dengan nama pengguna sebenarnya di baris di atas.

Simpan file dan nikmati kehidupan sudo tanpa kata sandi.

5. Buat file log sudo terpisah

Kalian selalu dapat membaca syslog atau log jurnal untuk entri terkait sudo.

Namun, jika Kalian mengmaukan entri terpisah untuk sudo, Kalian dapat membuat file log khusus yang didedikasikan untuk sudo.

Katakanlah Kalian mau menggunakan /var/sudo.log mengajukan untuk tujuan ini. Kalian tidak perlu membuat file log baru sebelumnya. Ini akan dibuat untuk Kalian jika tidak ada.

Edit file /etc/sudoers menggunakan visudo dan tambahkan baris berikut ke dalamnya:

Defaults  logfile="/var/log/sudo.log"

Simpan dan Kalian dapat mulai melihat perintah mana yang dijalankan sudo pada waktu berapa dan oleh pengguna apa dalam file ini:

file log sudo khusus

6. Hanya mengizinkan perintah tertentu dengan sudo untuk kelompok pengguna tertentu

Ini lebih merupakan solusi canggih yang digunakan sysadmin dalam lingkungan multi-pengguna di mana orang-orang dari berbagai departemen bekerja di server yang sama.

Pengembang mungkin perlu menjalankan server web atau program lain dengan izin root tetapi memberi mereka akses sudo lengkap akan menjadi masalah keamanan.

Meskipun hal ini dapat dilakukan di tingkat pengguna, saya sarankan melakukannya di tingkat grup. Katakanlah Kalian membuat grup bernama coders dan Kalian mengizinkan mereka menjalankan perintah (atau binari) dari /var/www Dan /opt/bin/coders direktori dan perintah inxi (biner /usr/bin/inxi).

Ini adalah skenario hipotetis. Tolong jangan menganggapnya kata demi kata.

Sekarang, edit file sudoer dengan sudo visudo (ya, kamu sudah mengetahuinya sekarang). Tambahkan baris berikut ke dalamnya:

%coders   ALL=(ALL:ALL) /var/www,/opt/bin/coders,/usr/bin/inxi

Kalian dapat menambahkan parameter NOPASSWD jika Kalian mau agar sudo untuk perintah yang diizinkan di atas dapat dijalankan dengan sudo tetapi tanpa kata sandi.

Lebih lanjut tentang SEMUA SEMUA SEMUA di beberapa artikel lain karena artikel ini semakin panjang dari biasanya.

7. Periksa akses sudo untuk pengguna

Baiklah! Yang ini lebih merupakan tip daripada penyesuaian.

Bagaimana Kalian tahu jika pengguna memiliki akses sudo? Periksa apakah mereka anggota grup sudo, katamu. Tapi itu bukan jaminan. Beberapa distro menggunakan nama grup wheel alih-alih sudo.

Cara yang lebih baik adalah dengan menggunakan fungsionalitas bawaan sudo dan melihat jenis akses sudo yang dimiliki pengguna:

sudo -l -U user_name

Ini akan menunjukkan apakah pengguna memiliki akses sudo untuk beberapa perintah atau untuk semua perintah.

Seperti yang Kalian lihat di atas, ini menunjukkan bahwa saya memiliki file log khusus dan umpan balik kata sandi selain akses sudo untuk semua perintah.

Jika pengguna tidak memiliki akses sudo sama sekali, Kalian akan melihat keluaran seperti ini:

User prakash is not allowed to run sudo on this-that-server.

🎁 Bonus: Biarkan sudo menghina Kalian karena upaya kata sandi yang salah

Ini adalah perubahan ‘tidak berguna’ yang saya sebutkan di awal artikel ini.

Kami kira Kalian pasti salah mengetik kata sandi saat menggunakan sudo beberapa waktu lalu, bukan?

Perubahan kecil ini membuat sudo menghina Kalian secara acak karena memasukkan kata sandi yang salah.

Menggunakan sudo visudo untuk mengedit file konfigurasi sudo dan menambahkan baris berikut ke dalamnya:

Defaults 	insults

Dan kemudian Kalian dapat menguji perubahannya dengan memasukkan kata sandi yang salah:

Biarkan sudo menghina Kalian

Kalian mungkin bertanya-tanya siapa yang suka dihina? OnlyFans bisa menjawabnya secara grafis 😇

Bagaimana kabarmu sudo?

meme sudo

Kami tahu penyesuaian tidak ada habisnya. Meskipun demikian, sudo bukanlah sesuatu yang dapat dikustomisasi oleh pengguna linux biasa.

Namun, saya mau berbagi hal-hal seperti itu dengan Kalian karena Kalian mungkin menemukan sesuatu yang baru dan berguna.

💬 Jadi, apakah Kalian menemukan sesuatu yang baru? Tolong beri tahu saya di komentar. Dan apakah Kalian punya trik sudo rahasia? Mengapa tidak membaginya dengan kita semua?

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: