Periksa apakah skrip berjalan sebagai pengguna root di Linux

Periksa apakah skrip berjalan sebagai pengguna root di Linux

Terkadang skrip shell diperlukan untuk dijalankan sebagai pengguna root untuk melakukan beberapa tugas dengan hak istimewa administrator. Secara umum, tugas itu dapat dicapai dengan perintah sudo. Jika dalam beberapa kasus Anda masih perlu memaksa pengguna untuk menjalankan skrip sebagai pengguna root, Anda dapat menambahkan kode ke skrip Anda untuk memeriksa apakah skrip berjalan dengan pengguna root atau tidak.

Periksa apakah skrip shell berjalan sebagai pengguna root

Tambahkan kode berikut di awal skrip shell untuk memeriksa apakah skrip berjalan sebagai pengguna root. Jika skrip dieksekusi sebagai akun non-root, itu akan keluar dengan kode status 1.

#!/usr/bin/env bash if ["$ euid" -ne 0]; lalu echo "Harap jalankan skrip ini sebagai pengguna root" Keluar 1 fi
123456#!/usr/bin/env bash jika ["$ euid" -ne 0]; lalu echo "Harap jalankan skrip ini sebagai pengguna root" Keluar 1fi

Di sini Euid adalah variabel sistem yang menyimpan ID pengguna (UID) dari pengguna yang saat ini masuk. UID pengguna "root" selalu 0 di sistem linux.

Alih-alih menggunakan UID, Anda juga dapat mencocokkan nama pengguna yang masuk. Itu siapa saya Perintah memberikan nama pengguna yang saat ini dicatat. Skrip di bawah ini akan memeriksa apakah skrip berjalan sebagai pengguna root atau tidak.

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

Periksa apakah skrip shell berjalan sebagai pengguna non-root

Terkadang skrip diperlukan untuk dijalankan sebagai akun non-root. Dalam hal ini, Anda dapat menambahkan cuplikan berikut untuk memeriksa akun pengguna dan melanjutkan hanya jika skrip berjalan sebagai pengguna normal.

#!/usr/bin/env bash jika ["$ euid" -eq 0]; lalu echo "Harap jalankan skrip ini sebagai pengguna non -root" Keluar 1 Fi
123456#!/usr/bin/env bash jika ["$ euid" -eq 0]; lalu echo "Harap jalankan skrip ini sebagai pengguna non -root" keluar 1fi

Kesimpulan

Dalam panduan cara yang cepat ini, Anda telah belajar tentang menambahkan pembatasan dalam skrip shell untuk dijalankan sebagai pengguna root atau pengguna non-root. Jika menjalankan pengguna yang berbeda, skrip akan segera keluar.