GNU/Linux >> Belajar Linux >  >> Linux

10 Tips Cepat Tentang perintah sudo untuk sistem Linux

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.

  1. Pertama-tama, kita tidak perlu mengkompromikan kata sandi pengguna root. Pengguna biasa menggunakan sandinya sendiri untuk menjalankan perintah dengan hak istimewa yang lebih tinggi.
  2. Kami dapat mengontrol akses pengguna sudo yang berarti kami dapat membatasi pengguna untuk hanya menjalankan perintah tertentu.
  3. 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


Linux
  1. 4 alat untuk membangun sistem Linux tertanam

  2. Contoh Perintah sudo di Linux

  3. Apa yang setara dengan perintah updatedb Linux untuk Mac?

  1. 3 tips untuk mencetak dengan Linux

  2. 8 tips untuk baris perintah Linux

  3. 8 Contoh Perintah Tanggal Cepat di Linux

  1. Menjinakkan perintah tar:Kiat untuk mengelola cadangan di Linux

  2. Kiat Baris Perintah Linux untuk Meningkatkan Produktivitas

  3. Jalankan perintah cd sebagai superuser di Linux