Skrypt powłoki Linux do przełączania użytkownika i wyświetlania wymaganych informacji w tle skryptu

Nov 20 2020

Potrzebuję przykładowego skryptu powłoki Linux dla scenariusza poniżej:

Podczas sesji interaktywnej:

su user1
Password: <Type password>

Co zrobię, to zapiszę hasło w jakimś pliku (np ~/pwd.txt.:). Potrzebuję takiego skryptu powłoki, że po wykonaniu tego skryptu hasło użytkownika docelowego zostanie odczytane z pliku i automatycznie przekazane do, sua następnie przełączę się na użytkownika docelowego. Nie trzeba pokazywać monitu, byłoby dobrze, gdyby wszystko zostało przetworzone w tle i po prostu widzę bezpośrednie przejście do nowego użytkownika).

Proszę pomóż!

Dzięki!

Odpowiedzi

RedaSalih Nov 20 2020 at 22:56

Przechowywanie surowego hasła w pliku nie jest zabezpieczone; ale przynajmniej będzie to odpowiedź na twoje pytanie.

Używanie NOPASSWD w sudoers

Dodaj poniższy wpis do swoich sudoerów:

<your_user> ALL=NOPASSWD: /bin/su - user1
#Then simply run
sudo -S su - user1

Bez sudoers : Przydatne dla nieinteraktywnych powłok

su - user1 -c ""  < ~/pwd.txt &>/dev/null

< ~/pwd.txt Przekieruj swoje hasło zapisane w ~ / pwd.txt do polecenia su.

&>/dev/null Przekieruj zarówno stdout, jak i sterr do> / dev / null.

## LEPSZY ## :

Możesz użyć narzędzia gpg do zaszyfrowania hasła:

    # Encrypt your password with choosing a passphrase :
    gpg -c ~/pwd.txt 
    # Remove your raw password file :
    rm -f ~/pwd.txt.gpg

Teraz, próbując użyć su, użyj powyższego, aby odszyfrować hasło :

su - user1 -c ""  <<< "$(gpg -q -d ~/pwd.txt.gpg 2>/dev/null)" &>/dev/null