Jak zmusić sudo do pobrania hasła z pliku?


13

Chcę uruchomić polecenie wymagające hasła sudo:

sudo apt-get update

Czy to nie powinno działać (zapisałem hasło w normalnym pliku tekstowym passwd.txt):

sudo apt-get update <~/passwd.txt

Taka jest moja logika, dlaczego POWINIEN działać: kiedy hasło jest wymagane, użytkownik jest proszony o wprowadzenie hasła z klawiatury. Ale przekierowanie stdindo odczytu z passwd.txtpliku powinno działać.

Nie powinno?



Zwykle używasz expectskryptu tcl do automatyzacji takich rzeczy.
Adobe,

Jeśli musisz o to zapytać, prawdopodobnie robisz coś złego. Czy mógłbyś w pierwszej kolejności podzielić się tym, co próbujesz osiągnąć? Nigdy nie należy używać takich hacków. To wskazówka, że ​​powinno być lepsze rozwiązanie.
gertvdijk

@gertvdijk Nie jestem ekspertem od ubuntu, ale się uczę. Dałem to sobie jako ćwiczenie: „Wykonaj polecenie w skrypcie Bash, który wymaga uprawnień sudo, korzystając tylko z wiedzy, którą obecnie posiadam. Bez użycia Google”. Wymyśliłem powyższą odpowiedź i pomyślałem, że to powinno zadziałać. Później znalazłem lepsze, bezpieczniejsze rozwiązania na AskUbuntu.
MichaelB

Odpowiedzi:


27

sudostdindomyślnie nie odczytuje hasła . Z sudostrony man:

-S  The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
    The password must be followed by a newline character.

Więc powinieneś uruchomić:

sudo -S apt-get update <~/passwd.txt

Pamiętaj, że przechowywanie haseł w plikach nie jest dobrą praktyką. Powinieneś czytać:


Zrozumiany! Krótka i słodka odpowiedź!
MichaelB
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.