Cara Menjalankan Skrip Shell dengan Perintah Sudo di Linux


sudo adalah alat baris perintah canggih yang memungkinkan “pengguna yang diizinkan ” menjalankan perintah sebagai pengguna lain (pengguna super secara default), sebagaimana ditentukan oleh kebijakan keamanan. Pada sebagian besar, jika tidak semua, sistem Linux, kebijakan keamanan ditentukan oleh file /etc/sudoers.

Baca Juga: 10 Konfigurasi Sudoers yang Berguna untuk Mengatur 'sudo' di Linux

Oleh karena itu, untuk menjalankan skrip atau program shell sebagai root, Anda perlu menggunakan perintah sudo. Namun, sudo hanya mengenali dan menjalankan perintah yang ada di direktori yang ditentukan dalam secure_path di /etc/sudoers, kecuali ada perintah di dalamnya secure_path, Anda akan mengatasi kesalahan seperti di bawah ini.

Hal ini akan terjadi bahkan jika skrip ada di direktori dalam variabel lingkungan PATH, karena ketika pengguna memanggil sudo, PATH diganti dengan < kuat>jalur_aman.

echo  $PATH
ls  -l
sudo proconport.sh 80

Dalam skenario di atas, direktori /home/aaronkilik/bin berada dalam variabel lingkungan PATH dan kami mencoba menjalankan skrip /home/aaronkilik/bin /proconport.sh (menemukan proses mendengarkan pada port) dengan hak akses root.

Kemudian kami menemukan kesalahan “sudo: proconport.sh: command not found ”, karena /home/aaronkilik/bin tidak ada di sudo secure_path seperti yang ditunjukkan pada tangkapan layar berikutnya.

Untuk memperbaikinya, kita perlu menambahkan direktori yang berisi skrip kita di sudo secure_path dengan menggunakan perintah visudo dengan mengedit file /etc/sudoers sebagai berikut.

sudo visudo

Perhatian: Metode ini memiliki implikasi keamanan yang serius terutama pada server yang berjalan di Internet. Dengan cara ini, kita berisiko membuat sistem kita terkena berbagai serangan, karena penyerang yang berhasil mendapatkan akses ke direktori tidak aman (tanpa hak pengguna super) yang telah ditambahkan ke secure_path, dapat menjalankan skrip/program berbahaya dengan perintah sudo.

Untuk alasan keamanan, lihat artikel berikut dari situs web sudo yang menjelaskan kerentanan terkait secure_path: https://www.sudo.ws/sudo/alerts/secure_path.html

Sebaiknya, kita dapat memberikan jalur absolut ke skrip saat menjalankannya dengan sudo:

sudo ./proconport.sh 80

Itu dia! Anda dapat mengikuti daftar artikel tentang perintah sudo:

  1. Cara Menjalankan Perintah 'sudo' Tanpa Memasukkan Kata Sandi di Linux
  2. Cara Memperpanjang Sesi Batas Waktu Kata Sandi 'sudo' di Linux
  3. Cara Memperbaiki “Nama pengguna tidak ada di file sudoers. Kejadian ini akan dilaporkan ” di Ubuntu
  4. Biarkan Sudo Menghina Anda Saat Anda Memasukkan Kata Sandi yang Salah

Jika Anda memiliki pertanyaan atau pemikiran mengenai artikel ini, sampaikan kepada kami melalui formulir komentar di bawah.