Проверка того, выполняется ли сценарий от имени пользователя root в Linux

29 set 2022 1 min di lettura
Проверка того, выполняется ли сценарий от имени пользователя root в Linux
Indice dei contenuti

Введение

Иногда сценарии оболочки необходимо запускать от имени пользователя root для выполнения некоторых задач с правами администратора. Как правило, эти задачи можно решить с помощью команд Sudo. Если в некоторых случаях вам все же нужно заставить пользователя запускать скрипт от имени root, вы можете добавить в скрипт код, чтобы проверить, выполняется ли скрипт под пользователем root или нет.

Проверьте, запущен ли сценарий оболочки от имени пользователя root

Добавьте следующий код в начало сценария оболочки, чтобы проверить, выполняется ли сценарий от имени пользователя root. Если скрипт запускается от имени учетной записи без полномочий root, он завершится с кодом состояния 1:

#!/usr/bin/env bash

 if [ "$EUID" -ne 0 ];then
 echo "Please run this script as root user"
 exit 1
fi

Здесь EUID — это системная переменная, в которой хранится идентификатор пользователя (UID) текущего пользователя, вошедшего в систему. UID пользователя root всегда равен 0 в системах Linux.

Вместо использования UID вы также можете сопоставить имя пользователя, под которым вы вошли в систему. Команда whoami предоставляет текущее зарегистрированное имя пользователя. Следующий скрипт проверит, запущен ли скрипт от имени root или нет:

date +%F #Output: 2022-07-25
date +%Y-%m-%d #Output: 2022-07-25

Проверьте, запущен ли сценарий оболочки от имени пользователя без полномочий root.

Иногда сценарии необходимо запускать от имени учетной записи без полномочий root. Если это так, вы можете добавить следующий фрагмент для проверки учетной записи пользователя и продолжить, только если скрипт работает от имени обычного пользователя:

date +%F #Output: 2022-07-25
date +%Y-%m-%d #Output: 2022-07-25

Вывод

В этом кратком руководстве вы узнали, как добавить ограничения в сценарий оболочки для запуска от имени пользователя root или обычного пользователя. Если запущен другой пользователь, сценарий немедленно завершится.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.