Sprawdź, czy skrypt działa jako użytkownik root w Linux

Sprawdź, czy skrypt działa jako użytkownik root w Linux

Czasami skontaktowanie są wymagane do uruchomienia jako użytkownik root, aby wykonywać niektóre zadania z uprawnieniami administratora. Ogólnie rzecz biorąc, zadania można osiągnąć za pomocą poleceń sudo. Jeśli w niektórych przypadkach nadal musisz zmusić użytkownika do uruchomienia skryptu jako użytkownika root, możesz dodać kod do skryptu, aby sprawdzić, czy skrypt działa z użytkownikiem rootowym, czy nie.

Sprawdź, czy skrypt powłoki działający jako użytkownik root

Dodaj następujący kod na początku skryptu powłoki, aby sprawdzić, czy skrypt działa jako użytkownik root. Jeśli skrypt zostanie wykonywany jako konto inne niż root, wyjdzie z kodu stanu 1.

#!/usr/bin/env bash Jeśli [„$ euid” -Ne 0]; następnie echo „Proszę uruchom ten skrypt jako użytkownik root” Wyjdź 1 fi
123456#!/usr/bin/env bash Jeśli [„$ euid” -Ne 0]; następnie echo „Proszę uruchom ten skrypt jako użytkownik root” Exit 1fi

Tutaj EUID to zmienna systemowa, która przechowywała identyfikator użytkownika (UID) aktualnie zalogowanego użytkownika. UID użytkownika „root” jest zawsze 0 w systemach Linux.

Zamiast korzystać z UID, możesz również dopasować nazwę użytkownika zalogowanego. kim jestem Polecenie zapewnia aktualnie zarejestrowaną nazwę użytkownika. Poniższy skrypt sprawdzi, czy skrypt działa jako użytkownik root, czy nie.

#!/usr/bin/env bash, jeśli [„whoami” != 'root']; następnie echo "Proszę uruchom ten skrypt jako użytkownik root" Wyjdź 1 fi
123456#!/usr/bin/env bash, jeśli [„whoami” != 'root']; następnie echo "Uruchom ten skrypt jako użytkownik root" Wyjdź 1fi

Sprawdź, czy skrypt powłoki działa jako użytkownik nie-root

Czasami skrypty są zobowiązane do działania jako konto inne niż. W takim przypadku możesz dodać następujący fragment, aby sprawdzić konto użytkownika i kontynuować tylko wtedy, gdy skrypt działa jako normalny użytkownik.

#!/usr/bin/env bash Jeśli ["$ euid" -eq 0]; następnie echo "Proszę uruchom ten skrypt jako użytkownik nie -root" Wyjdź 1 FI
123456#!/usr/bin/env bash, jeśli [„$ euid” -eq 0]; następnie echo „Proszę uruchom ten skrypt jako użytkownik nie -root” Wyjdź 1fi

Wniosek

W tym szybkim instrukcji poradników dowiedziałeś się o dodawaniu ograniczeń w skrypcie powłoki, aby uruchomić jako użytkownik root lub użytkownik nie-root. Jeśli działa innego użytkownika, skrypt natychmiast wyjdzie.