Cara menjalankan skrip shell dengan arahan sudo di linux

Cara menjalankan skrip shell dengan arahan sudo di linux

sudo adalah alat baris perintah yang kuat yang membolehkan "pengguna yang dibenarkan"Untuk menjalankan arahan sebagai pengguna lain (superuser secara lalai), seperti yang ditakrifkan oleh dasar keselamatan. Sebilangan besar jika tidak semua sistem linux, dasar keselamatan didorong oleh /etc/sudoers fail.

Baca juga: 10 Konfigurasi Sudoer Berguna untuk Menetapkan 'Sudo' di Linux

Oleh itu, untuk menjalankan skrip atau program shell sebagai akar, anda perlu menggunakan arahan sudo. Walau bagaimanapun, sudo hanya mengiktiraf dan menjalankan arahan yang wujud dalam direktori yang dinyatakan dalam selamat_path di dalam /etc/sudoers, melainkan jika arahan hadir di selamat_path, anda akan mengatasi kesilapan seperti yang di bawah.

Ini akan berlaku walaupun skrip wujud dalam direktori di Jalan Pemboleh ubah alam sekitar, kerana apabila pengguna memohon sudo, Jalan digantikan dengan selamat_path.

$ echo $ path $ ls -l $ sudo proCoRport.SH 80 
Kesalahan sudo semasa menjalankan skrip

Dalam senario di atas, direktori /rumah/aaronkilik/bin berada di Jalan Pemboleh ubah persekitaran dan kami cuba menjalankan skrip /rumah/aaronkilik/bin/proConport.sh (mencari proses mendengar di port) dengan keistimewaan akar.

Kemudian kami menghadapi ralat "Sudo: ProConport.SH: Perintah tidak dijumpai", sejak /rumah/aaronkilik/bin tidak berada di sudo secure_path seperti yang ditunjukkan dalam tangkapan skrin seterusnya.

Periksa jalan selamat sudo

Untuk membetulkannya, kita perlu menambah direktori yang mengandungi skrip kami di sudo secure_path dengan menggunakan Perintah Visudo dengan mengedit /etc/sudoers fail seperti berikut.

$ sudo visudo 

Perhatian: Kaedah ini mempunyai implikasi keselamatan yang serius terutama pada pelayan yang berjalan di internet. Dengan cara ini, kami mengambil risiko mendedahkan sistem kami ke pelbagai serangan, kerana penyerang yang berjaya mendapatkan akses kepada direktori yang tidak selamat (tanpa keistimewaan super) yang telah ditambah ke Secure_Path, dapat menjalankan skrip/program yang berniat jahat dengan perintah sudo.

Atas sebab keselamatan, periksa artikel berikut dari laman web sudo menerangkan kelemahan yang berkaitan dengan Secure_Path: https: // www.sudo.WS/SUDO/Alert/Secure_Path.html

Sebaiknya, kita dapat memberikan jalan mutlak ke skrip semasa menjalankannya dengan sudo:

$ sudo ./ProConport.SH 80 
Jalankan skrip menggunakan arahan sudo

Itu sahaja! Anda boleh mengikuti senarai artikel mengenai arahan sudo:

  1. Cara menjalankan perintah 'sudo' tanpa memasukkan kata laluan di linux
  2. Cara Mengekalkan Sesi Masa Kata Laluan 'Sudo' Lebih lama di Linux
  3. Cara Memperbaiki "Nama Pengguna tidak berada dalam fail sudoers. Kejadian ini akan dilaporkan "di Ubuntu
  4. Biarkan sudo menghina anda apabila anda memasukkan kata laluan yang salah

Sekiranya anda mempunyai sebarang pertanyaan atau pemikiran mengenai artikel ini, kongsi dengan kami melalui borang komen di bawah.