Jak długie jest hasło do wykonania polecenia z sudo w pamięci podręcznej?

23

Jeśli uruchomię polecenie wymagające uprawnień roota sudo, zostaniesz poproszony o podanie hasła bieżącego użytkownika. Po pewnym czasie, jeśli wykonam te same polecenia za pomocą sudo, nie będę więcej pytany o hasło. Domyślam się, że hasło jest gdzieś w pamięci podręcznej, dopóki nie wygaśnie. Jak długi jest ten termin ważności? Czy można to skonfigurować?

Meysam
źródło
1
Tylko fyi, możesz poprosić o przedłużenie ważności za pomocą sudo -v. Jest to świetne do umieszczania na górze skryptów uruchamiających polecenia sudo, tak aby na początku wyświetlało się pytanie o hasło.
valbaca
Uwaga: sudo tak naprawdę nie buforuje hasła. Sudo tak naprawdę wcale nie potrzebuje hasła, aby wykonać swoje zadanie, prosi jedynie o sprawdzenie, czy użytkownik może uruchomić dane polecenie. Zasadniczo buforuje dane uwierzytelniające użytkowników na pewien okres (jako specjalny „znacznik czasu”, patrz najważniejsze odpowiedzi), podczas którego użytkownik nie wymaga ponownej weryfikacji. Samo hasło nie jest buforowane (przechowywane), w przeciwieństwie do przeglądarki internetowej lub kluczy szyfrujących.
Anthony

Odpowiedzi:

20

man 5 sudoersinformuje nas, że istnieje opcja timestamp_timeout:

timestamp_timeout

Liczba minut, które mogą upłynąć, zanim sudo poprosi ponownie o hasło. Limit czasu może obejmować element ułamkowy, jeśli drobna ziarnistość jest niewystarczająca, na przykład 2,5. Wartość domyślna to 5. Ustaw tę wartość na 0, aby zawsze monitować o hasło. Jeśli ustawiona na wartość mniejszą niż 0, znacznik czasu użytkownika nigdy nie wygasa. Można to wykorzystać, aby umożliwić użytkownikom tworzenie lub usuwanie własnych znaczników czasu za pomocą odpowiednio „sudo -v” i „sudo -k”.

Tak, można go skonfigurować za pomocą /etc/sudoersi domyślnie wygasa po 5 minutach.

Ulrich Schwarz
źródło
4
i wiesz, użyj visudodo edycji sudokonfiguracji, NIGDY nie edytuj /etc/sudoersbezpośrednio.
Carlos Campderrós
2
@ CarlosCampderrós: ​​To prawda. I (jeśli to możliwe) zawsze trzymaj otwartą kolejną powłokę roota, aby być po bezpiecznej stronie. :)
Ulrich Schwarz
7

To zależy od twojej konfiguracji. Domyślnie w większości dystrybucji (i w źródle) jest to 5 minut, ale możesz to zmienić za pomocą timestamp_timeoutopcji w /etc/sudoers. Od man sudoers:

Liczba minut, które mogą upłynąć, zanim sudo poprosi ponownie o hasło. Limit czasu może obejmować element ułamkowy, jeśli drobna ziarnistość jest niewystarczająca, na przykład 2,5. Wartość domyślna to 5. Ustaw tę wartość na 0, aby zawsze monitować o hasło. Jeśli ustawiona na wartość mniejszą niż 0, znacznik czasu użytkownika nigdy nie wygasa. Można to wykorzystać, aby umożliwić użytkownikom tworzenie lub usuwanie własnych znaczników czasu za pomocą odpowiednio „sudo -v” i „sudo -k”.

Na przykład, aby ustawić limit czasu dla użytkownika chrisna 20 minut, dodaj następujące elementy /etc/sudoerslub plik w /etc/sudoers.d(uwaga: zarówno kolejność reguł w tych plikach, jak i kolejność tych plików mają znaczenie, upewnij się, że nie zostanie przypadkowo zastąpiona przez reguła, która jest wykonywana później):

Defaults:chris timestamp_timeout=20
Chris Down
źródło