Skrypt powłoki Linux do przełączania użytkownika i wyświetlania wymaganych informacji w tle skryptu
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, su
a 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
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