Ustaw HISTIGNORE na „ sudo -S ”
$ export HISTIGNORE='*sudo -S*'
Następnie przekaż swoje hasło bezpiecznie do sudo:
$ echo "your_password" | sudo -S -k <command>
„HISTIGNORE” oznacza, że nie zapisujesz tego polecenia w historii. To jest historia w pamięci lub plik „~ / .bash_history”.
Na przykład poniżej bezpiecznie potokuje twoje hasło do polecenia sudo, bez przechowywania historii twojego hasła.
„-S” oznacza użycie stdin jako hasła,
„-K” oznacza ignorowanie buforowanych danych uwierzytelniających, aby zmusić sudo, by zawsze pytało. Służy to spójnemu zachowaniu.
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -k whoami
$ echo "<your_password>" | sudo -S -k cat /etc/shadow
$ echo "<your_password>" | sudo -S -k bash /tmp/myscript.sh
Wadą powyższej metody jest to, że jeśli chcesz zobaczyć polecenia uruchomione w historii później, nie będą one dostępne. Inną metodą jest aktualizacja pamięci podręcznej uwierzytelniania sudo (domyślnie jest włączona z 5-minutowym limitem czasu), a następnie osobne uruchomienie sudo. Ale wadą tego jest to, że musisz być świadomy 5-minutowej pamięci podręcznej.
Na przykład:
$ export HISTIGNORE='*sudo -S*'
$ echo "<your_password>" | sudo -S -v
$ sudo whoami
$ echo "<your_password>" | sudo -S -v
$ sudo cat /etc/shadow
$ echo "<your_password>" | sudo -S -v
$ sudo /tmp/myscript.sh
Uwaga: Uruchomiłem sudo przed każdą komendą, aby upewnić się, że pamięć podręczna sudo jest aktualizowana, ponieważ domyślnie jest to 5 minut. Tak, whoami nie powinno zająć 5 minut, ale myślę, że równie dobrze mógłbym uruchomić go przed każdym poleceniem dla zachowania spójności. Możesz także wpisać „export HISTIGNORE = ' sudo -S„” w pliku ~ / .bashrc, a następnie załaduj go za pomocą „. ~ / .bashrc "lub wyloguj się, a następnie zaloguj. Jednak myślę, że wykorzystam to do celów skryptowych, więc będę trzymać go na szczycie wszystkich moich skryptów dla najlepszych praktyk bezpieczeństwa. Ustawienie" echo "" | sudo -S -v zamiast tego może być dobrym pomysłem, a następnie po prostu uruchom zmienną przed każdą komendą, która wymaga uprawnień roota, patrz komentarz Janara. Komentarz „John T” powinien również zawierać parametr „-k” , tak jakbyś uruchomił „sudo -S” bez „-k”, a pamięć podręczna uwierzytelniania sudo ma już poświadczenia (i nadal jest ważna, domyślna pamięć podręczna uwierzytelniania sudo wynosi 5 minut), wówczas bash uruchomi hasło jako polecenie, czyli zły.
halt
uruchomić jako root.