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>
superuserstąd, superuser.com/questions/67765/…
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>
superuserstąd, superuser.com/questions/67765/…
Odpowiedzi:
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
!
su: must be run from a terminal.
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
su root script nadal muszę wprowadzić hasło.
echo <passwd> | sudo -S <command-line>Chociaż nie jest to bezpieczne, ale działa.