Periksa sama ada skrip berjalan sebagai pengguna root di linux

Periksa sama ada skrip berjalan sebagai pengguna root di linux

Kadang -kadang skrip shell diperlukan untuk dijalankan sebagai pengguna root untuk melaksanakan beberapa tugas dengan keistimewaan pentadbir. Umumnya, tugas -tugas itu dapat dicapai dengan arahan sudo. Sekiranya dalam beberapa kes, anda masih perlu memaksa pengguna untuk menjalankan skrip sebagai pengguna root, anda boleh menambah kod ke skrip anda untuk memeriksa sama ada skrip berjalan dengan pengguna root atau tidak.

Periksa sama ada skrip shell berjalan sebagai pengguna root

Tambahkan kod berikut pada permulaan skrip shell untuk memeriksa sama ada skrip berjalan sebagai pengguna root. Sekiranya skrip dilaksanakan sebagai akaun bukan akar, ia akan keluar dengan kod status 1.

#!/usr/bin/env bash if ["$ euid" -ne 0]; kemudian echo "sila jalankan skrip ini sebagai pengguna root" keluar 1 fi
123456#!/usr/bin/env bash if ["$ euid" -ne 0]; kemudian echo "sila jalankan skrip ini sebagai pengguna root" keluar 1fi

Di sini Euid adalah pemboleh ubah sistem yang menyimpan ID Pengguna (UID) pengguna yang sedang log masuk. Uid pengguna "root" selalu 0 mengenai sistem linux.

Daripada menggunakan UID, anda juga boleh memadankan nama pengguna log masuk. The siapakah saya Perintah menyediakan nama pengguna yang sedang dilog masuk. Skrip di bawah akan memeriksa sama ada skrip berjalan sebagai pengguna root atau tidak.

#!/usr/bin/env bash jika ['whoami' != 'root']; kemudian echo "Sila jalankan skrip ini sebagai pengguna root" keluar 1 fi
123456#!/usr/bin/env bash jika ['whoami' != 'root']; kemudian echo "sila jalankan skrip ini sebagai pengguna root" keluar 1fi

Periksa sama ada skrip shell berjalan sebagai pengguna bukan akar

Kadang-kadang skrip diperlukan untuk dijalankan sebagai akaun bukan akar. Dalam hal ini, anda boleh menambah coretan berikut untuk memeriksa akaun pengguna dan teruskan hanya jika skrip berjalan sebagai pengguna biasa.

#!/usr/bin/env bash if ["$ euid" -eq 0]; kemudian echo "Sila jalankan skrip ini sebagai pengguna bukan akar" keluar 1 fi
123456#!/usr/bin/env bash if ["$ euid" -eq 0]; kemudian echo "sila jalankan skrip ini sebagai pengguna bukan akar" keluar 1fi

Kesimpulan

Dalam panduan cara yang cepat ini, anda telah belajar tentang menambahkan sekatan dalam skrip shell untuk dijalankan sebagai pengguna akar atau pengguna bukan akar. Sekiranya ia menjalankan pengguna yang berbeza, skrip akan keluar dengan segera.