Czy możliwe jest wprowadzenie hasła do sudo tylko raz i skonfigurowanie go tak, aby nie wymagał hasła na innych terminalach?

33

Podaję pierwsze sudopolecenie. Podaj moje hasło Przez jakiś czas nie będę musiał wprowadzać hasła do kolejnych poleceń sudo.

Teraz pytanie. Jestem kimś, kto otwiera wiele terminali. Byłoby bardzo wygodne, gdybym nie musiał wprowadzać haseł, gdy korzystam sudoz terminali, które otwieram po pierwszym sudo, na krótki czas, kiedy nie będę musiał wpisywać hasła do sudo w terminalu, z którego korzystałem z sudo pierwszy raz. (Przepraszam za długie zdanie!)

Czy to możliwe? Jeśli nie to dlaczego? Jeśli tak to jak?

daltonfury42
źródło
4
Czy bierzesz to pod uwagę, otwierając dziurę w zabezpieczeniach, którą ten mechanizm istnieje, aby zamknąć? Powodem, dla którego musisz podać hasło w sudo, jest ochrona przed sytuacją, w której atakujący w jakiś sposób uzyskał dostęp do sesji logowania na twoje imię. Jeśli ją wyłączysz, a komuś uda się przejąć jedną z sesji terminalu (czy wszystkie są na tej samej konsoli?) Lub w inny sposób uzyskać dostęp do sesji logowania w twoim imieniu bez znajomości hasła, będzie mógł uruchomić dowolną polecenie jako root. Niezbyt prawdopodobny scenariusz, ale należy wziąć pod uwagę.
Pepijn Schmitz

Odpowiedzi:

52

Jasne, że tak. Uruchom sudo visudoi dodaj ten wiersz do swojego sudoerspliku:

Defaults        !tty_tickets

Jak wyjaśniono w man sudoers:

 tty_tickets       If set, users must authenticate on a per-tty basis.
                   With this flag enabled, sudo will use a separate record
                   in the time stamp file for each tty.  If disabled, a
                   single record is used for all login sessions.  This
                   flag is on by default.

Ustawiając tty_ticketsna off (to !oznacza), umożliwiasz współdzielenie jednego uwierzytelnienia przez wiele sesji.

terdon
źródło
1
Jedyną rzeczą, którą robię inaczej, gdy doradzam użytkownikom, jest użycie pliku sudoers.d. W ten sposób, jeśli bardzo łatwo je odzyskać, po prostu usuń ten plik. Dawny. sudo visudo -f /etc/sudoers.d/01_file
doug
Co się stanie, gdy upłynie limit czasu sudo? lub uruchomić coś takiego sudo -k?
Maythux,
@Maythux, musisz wprowadzić go ponownie. To sprawia, że ​​pojedyncza identyfikacja działa dla wszystkich sesji powłoki. Nic więcej.
terdon
@ user3073656 ah, spoko, to ma większy sens :). Tak, proszę, usunę moje.
terdon
Powinienem zauważyć, że jeśli użyję tej metody, hasło wygaśnie dopiero po upływie 15 minut, nawet jeśli zrestartuję się, co stanowi zagrożenie dla bezpieczeństwa. Więc może dodać sudo -kdo /etc/rc6.d?
daltonfury42