Ringkasan
sudo singkatan dari superuser do . Hal ini memungkinkan pengguna yang berwenang untuk menjalankan perintah sebagai pengguna lain. Pengguna lain dapat berupa pengguna biasa atau pengguna super. Namun, sebagian besar waktu kami menggunakannya untuk menjalankan perintah dengan hak istimewa yang lebih tinggi.
perintah sudo bekerja bersama dengan kebijakan keamanan, kebijakan keamanan default adalah sudoers dan dapat dikonfigurasi melalui /etc/sudoers mengajukan. Kebijakan keamanannya sangat dapat diperpanjang. Seseorang dapat mengembangkan dan mendistribusikan kebijakan mereka sendiri sebagai plugin.
Bedanya dengan su
Di GNU/Linux ada dua cara untuk menjalankan perintah dengan hak istimewa yang lebih tinggi:
- Menggunakan su perintah
- Menggunakan sudo perintah
su singkatan dari ganti pengguna . Menggunakan su, kita dapat beralih ke pengguna root dan menjalankan perintah. Tetapi ada beberapa kelemahan dengan pendekatan ini.
- Kami perlu membagikan kata sandi root dengan pengguna lain.
- Kami tidak dapat memberikan akses terkontrol karena pengguna root adalah pengguna super
- Kami tidak dapat mengaudit apa yang dilakukan pengguna.
sudo mengatasi masalah ini dengan cara yang unik.
- Pertama-tama, kita tidak perlu mengkompromikan kata sandi pengguna root. Pengguna biasa menggunakan sandinya sendiri untuk menjalankan perintah dengan hak istimewa yang lebih tinggi.
- Kami dapat mengontrol akses pengguna sudo yang berarti kami dapat membatasi pengguna untuk hanya menjalankan perintah tertentu.
- Selain itu, semua aktivitas pengguna sudo dicatat sehingga kami selalu dapat mengaudit tindakan apa yang dilakukan. Pada GNU/Linux berbasis Debian, semua aktivitas dicatat di /var/log/auth.log berkas.
Bagian selanjutnya dari tutorial ini menjelaskan poin-poin ini.
Langsung dengan sudo
Sekarang, kami memiliki pemahaman yang adil tentang sudo. Mari kita mengotori tangan kita dengan praktis. Untuk demonstrasi, saya menggunakan Ubuntu. Namun, perilaku dengan distribusi lain harus identik.
Izinkan akses sudo
Mari kita tambahkan pengguna biasa sebagai pengguna sudo. Dalam kasus saya, nama pengguna adalah linuxtechi
1) Edit file /etc/sudoers sebagai berikut:
$ sudo visudo
2) Tambahkan baris di bawah ini untuk mengizinkan akses sudo ke pengguna linuxtechi:
linuxtechi ALL=(ALL) ALL
Pada perintah di atas:
- linuxtechi menunjukkan nama pengguna
- Pertama ALL menginstruksikan untuk mengizinkan akses sudo dari terminal/mesin apa pun
- Second (ALL) menginstruksikan perintah sudo agar diizinkan untuk dieksekusi sebagai pengguna mana pun
- Tiga SEMUA menunjukkan semua perintah dapat dijalankan sebagai root
Jalankan perintah dengan hak istimewa yang lebih tinggi
Untuk menjalankan perintah dengan hak istimewa yang lebih tinggi, cukup tambahkan kata sudo ke perintah sebagai berikut:
$ sudo cat /etc/passwd
Ketika Anda menjalankan perintah ini, ia akan menanyakan kata sandi linuxtechi dan bukan kata sandi pengguna root.
Jalankan perintah sebagai pengguna lain
Selain itu, kita dapat menggunakan sudo untuk menjalankan perintah sebagai pengguna lain. Misalnya, pada perintah di bawah ini, pengguna linuxtechi menjalankan perintah sebagai pengguna devesh:
$ sudo -u devesh whoami [sudo] password for linuxtechi: devesh
Perilaku perintah bawaan
Salah satu batasan sudo adalah – perintah bawaan Shell tidak berfungsi dengannya. Misalnya, history adalah perintah bawaan, jika Anda mencoba menjalankan perintah ini dengan sudo maka kesalahan perintah tidak ditemukan akan dilaporkan sebagai berikut:
$ sudo history [sudo] password for linuxtechi: sudo: history: command not found
Akses shell root
Untuk mengatasi masalah di atas, kita bisa mendapatkan akses ke root shell dan menjalankan perintah apapun dari sana termasuk built in Shell.
Untuk mengakses root shell, jalankan perintah di bawah ini:
$ sudo bash
Setelah menjalankan perintah ini – Anda akan melihat bahwa tanda prompt berubah menjadi karakter pound (#).
Resep
Di bagian ini kita akan membahas beberapa resep berguna yang akan membantu Anda meningkatkan produktivitas. Sebagian besar perintah dapat digunakan untuk menyelesaikan tugas sehari-hari.
Jalankan perintah sebelumnya sebagai pengguna sudo
Misalkan Anda ingin menjalankan perintah sebelumnya dengan hak yang lebih tinggi, maka trik di bawah ini akan berguna:
$ sudo !4
Perintah di atas akan menjalankan perintah ke-4 dari riwayat dengan hak istimewa yang lebih tinggi.
Jika Anda ingin menjalankan perintah sebelumnya dengan hak akses root menggunakan perintah sudo, maka gunakan perintah berikut,
$ sudo !!
perintah sudo dengan Vim
Sering kali kami mengedit file konfigurasi sistem dan saat menyimpan, kami menyadari bahwa kami memerlukan akses root untuk melakukan ini. Karena ini kita mungkin kehilangan perubahan kita. Tidak perlu panik, kita dapat menggunakan perintah di bawah ini di Vim untuk menyelamatkan dari situasi ini:
:w !sudo tee %
Pada perintah di atas:
- Titik dua (:) menunjukkan kita dalam mode mantan Vim
- Tanda seru (!) menunjukkan bahwa kita sedang menjalankan perintah shell
- sudo dan tee adalah perintah shell
- Tanda persentase (%) menunjukkan semua baris dari baris saat ini
Jalankan beberapa perintah menggunakan sudo
Sejauh ini kami hanya menjalankan satu perintah dengan sudo tetapi kami dapat menjalankan banyak perintah dengannya. Cukup pisahkan perintah menggunakan titik koma (;) sebagai berikut:
$ sudo -- bash -c 'pwd; hostname; whoami'
Pada perintah di atas:
- Tanda hubung ganda (–) menghentikan pemrosesan sakelar baris perintah
- bash menunjukkan nama shell yang akan digunakan untuk eksekusi
- Perintah yang akan dieksekusi diikuti oleh opsi –c
Jalankan perintah sudo tanpa kata sandi
Ketika perintah sudo dijalankan pertama kali maka ia akan meminta kata sandi dan kata sandi default akan di-cache selama 15 menit berikutnya. Namun, kami dapat mengesampingkan perilaku ini dan menonaktifkan otentikasi kata sandi menggunakan kata kunci NOPASSWD sebagai berikut:
linuxtechi ALL=(ALL) NOPASSWD: ALL
Batasi pengguna untuk menjalankan perintah tertentu
Untuk menyediakan akses terkontrol, kami dapat membatasi pengguna sudo untuk hanya menjalankan perintah tertentu. Misalnya, baris di bawah ini hanya mengizinkan eksekusi perintah echo dan ls
linuxtechi ALL=(ALL) NOPASSWD: /bin/echo /bin/ls
Tambahkan baris atau string teks ke file menggunakan perintah sudo
Ada beberapa skenario di mana kami menambahkan beberapa baris ke file yang ada dengan pengguna lokal yang memiliki hak sudo,
$ echo ‘string teks’ | sudo tee -a
Contoh ditunjukkan di bawah ini :
[email protected]:~$ echo "deb http://ftp.de.debian.org/debian buster main contrib" | sudo tee -a /etc/apt/sources.list deb http://ftp.de.debian.org/debian buster main contrib [email protected]:~$
Cara alternatif untuk menambahkan baris atau teks ke file yang ada menggunakan perintah sudo,
sudo sh -c 'echo "deb http://ftp.de.debian.org/debian buster main contrib" >> /etc/apt/sources.list'
Wawasan tentang sudo
Mari kita gali lebih lanjut tentang perintah sudo untuk mendapatkan wawasan tentangnya.
$ ls -l /usr/bin/sudo -rwsr-xr-x 1 root root 145040 Jun 13 2017 /usr/bin/sudo
Jika Anda mengamati izin file dengan cermat, setuid bit diaktifkan di sudo. Ketika ada pengguna yang menjalankan biner ini, itu akan berjalan dengan hak istimewa dari pengguna yang memiliki file tersebut. Dalam hal ini adalah pengguna root.
Untuk mendemonstrasikan ini, kita dapat menggunakan perintah id dengannya sebagai berikut:
$ id uid=1002(linuxtechi) gid=1002(linuxtechi) groups=1002(linuxtechi)
Ketika kita menjalankan perintah id tanpa sudo maka id pengguna linuxtechi akan ditampilkan.
$ sudo id uid=0(root) gid=0(root) groups=0(root)
Tetapi jika kita menjalankan perintah id dengan sudo maka id pengguna root akan ditampilkan.
Kesimpulan
Kesimpulan dari artikel ini adalah – sudo menyediakan akses yang lebih terkontrol ke pengguna biasa. Dengan menggunakan teknik ini, banyak pengguna dapat berinteraksi dengan GNU/Linux dengan cara yang aman.
Baca Juga :Cara Membuat Tautan Keras dan Lunak (symlink) di Sistem Linux