Czy istnieje polecenie w jednym wierszu do wykonania polecenia `su`?


15

Mogę zrobić suz su <username>i prosi o hasło. Czy istnieje parametr hasła, dla suktórego nie będę monitowany o hasło?

na przykład su <username> -p <password>


Wygląda na to, że pytanie pasuje idealnie do superużytkownika: superuser.com :-)
HongboZhu,


1
dostałem to superuserstąd, superuser.com/questions/67765/…
alvas

Odpowiedzi:


12

Jeśli chcesz napisać skrypt, który działa jako inny użytkownik, coś takiego działa, chociaż wypuszcza słowo „hasło” bez nowego wiersza, aby wyjść poza standard

su - username <<!
enterpasswordhere
enter commands to run as the new user
!

jeśli masz użytkownika o nazwie fred z hasłem 1234 i chcesz uzyskać ls z katalogu domowego freda jako fred, bez wyświetlania ciągu hasła, wyglądałoby to tak:

su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!

2
hmm, „standardem musi być tty”
John Lawrence Aspden

Otrzymuję ten sam błąd
MaxV

12
Uzyskiwanie błąd: su: must be run from a terminal.
Abhishek Kashyap

5

Wierzę, że nie ma i nie byłby to dobry pomysł. Oto dlaczego:
Jeśli wpiszesz hasło w takim poleceniu su <username> -p <password>, będzie ono zapisane jako zwykły tekst w historii bash. To z pewnością ogromny problem bezpieczeństwa.

Jeśli chcesz uruchamiać polecenia za pomocą su(lub sudo) w sposób zautomatyzowany, napisz skrypt powłoki zawierający polecenia bez sulub sudoi uruchomsu <username> script.sh


1
su root script nadal muszę wprowadzić hasło.
Dai Kaixian

@DaiKaixian tak, ale nigdzie nie jest zapisany i nikt nie może go przeczytać
Wayne_Yux

2
możesz spróbować czegoś takiego: echo <passwd> | sudo -S <command-line>Chociaż nie jest to bezpieczne, ale działa.
Dai Kaixian

1
cała moja odpowiedź polega na tym, że zapisanie hasła w poleceniu nie jest bezpieczne. Radzę więc tego nie robić
Wayne_Yux

-3

Jeśli chcesz wykonać określone polecenia jako nowy użytkownik, użyj następującego polecenia:
sudo -u {username} {command to be executed as the new user}


To nie odpowiada na pytanie. Pytanie dotyczy sposobu obsługi hasła.
Stephen C
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.