uprawnienia sudo nie przekroczą limitu czasu podczas aktualizacji apt-get

9

Pomyśl o tym: piszesz $sudo apt-get upgradei dostajesz listę rzeczy, które wymagają aktualizacji, z potwierdzeniem „T \ n”. zanim zaczniesz czytać listę i wpisać „Y” lub „n”, telefon zadzwoni, pojawi się szef lub zrobisz coś innego. Wrócisz godzinę później i wciśniesz Y, by zainstalować aktualizacje.

nie zostaniesz ponownie zapytany o hasło. przypuszczalnie wszystkie kolejne polecenia sudo w powłoce zostaną wykonane, ponieważ licznik czasu został wstrzymany i oczekuje na dane wejściowe użytkownika. Albo użytkownik może zabić proces aktualizacji i zrobić coś takiego, sudo -ii po prostu pozostać w katalogu głównym na czas nieokreślony.

Używam Ubuntu Mate 14.04

czy jest to godny uwagi wyjątek bezpieczeństwa? Czy powinienem spróbować zgłosić to w jakimś miejscu? Jeśli tak to gdzie?

j0h
źródło
5
Co rozumiesz przez „przypuszczalnie”? Próbowałeś czy nie?
luckyrumo
3
Próbowałem tego właśnie teraz, nawet Defaults passwd_timeout=3 w moim pliku sudoers, po uruchomieniu sudo apt-get upgradehasła nie jest pytane. To nie jest dobre
Sergiy Kolodyazhnyy
Nie mam problemu, ze standardowymi ustawieniami na Ubuntu 15.04
luckyrumo
1
@TobiasKienzler nope. Nie zmieniłem w żaden sposób mojego pliku sudoers poza dodaniem tej części passwd_timeout. Sprawdź moją odpowiedź. Problem polegał na przekroczeniu limitu czasu. Są to różne opcje
Sergiy Kolodyazhnyy
1
@Serg Widzę, istnieją dwa limity czasu. Jak wygodnie mylące: / Dzięki :)
Tobias Kienzler,

Odpowiedzi:

22

Nie pojawia się monit o podanie hasła, ponieważ sudowykonał swoją pracę i zaczął apt-getjako root. Gdy apt-getpojawia się monit, proces jest nadal uruchomiony, a zatem ponieważ nadal działa jako root, nie trzeba ponownie wpisywać hasła.

Innymi słowy, dopóki sudouruchomiony jest proces, nie będziesz proszony o ponowne wprowadzenie hasła do tego procesu; sudonie przerywa procesu co 15 minut (domyślny limit czasu) i nie prosi o hasło.

Teraz, jeśli otworzysz inny terminal i spróbujesz uruchomić inny proces sudo, zostaniesz poproszony o podanie hasła.

saiarcot895
źródło
5
... lub w tym samym terminalu, po zakończeniu wstrzymanego polecenia sudo
steeldriver
3

sudoDomyślna timestamp_timeoutzmienna to 15 minut. Oznacza to, że jeśli klikniesz n w sudo apt-get upgradeciągu 15 minut, możesz spodziewać się wprowadzenia powłoki roota za pomocą sudo -i. Właśnie tak się stało. Jeśli jednak ustawisz to /etc/sudoersjako Default timestamp_timeout 0, będziesz za każdym razem monitowany. Osobiście ustawiłem go na 3. Jeśli twoje sudo nie przekroczy limitu czasu nawet po 15 minutach, oznacza to, że z twoim sudoplikiem binarnym jest coś poważnego .

To zachowanie nie jest luką w zabezpieczeniach, ale raczej „wygodą” dla użytkowników sudo. Zgadzam się jednak, że dla timestamp_timeoutwiększego bezpieczeństwa należy ustawić znacznie krótszy czas niż 15 minut.

Uwaga : passwd_timeoutopcja, o której wspomniałem w moim komentarzu, faktycznie przekracza limit czasu hasła, jeśli nie wpiszesz hasła przez x minut. To jedna z miłych chwil, w których zdajesz sobie sprawę, że powinieneś czytać man sudoersznacznie uważniej.

Sergiy Kolodyazhnyy
źródło
2
zwróć uwagę, że nie powinieneś nigdy edytować /etc/sudoersbezpośrednio, visudozamiast tego użyj sprawdzania błędów składniowych przed zastąpieniem sudoerswadliwym plikiem, który w innym przypadku może całkowicie zablokować dostęp do katalogu głównego
Tobias Kienzler
0

Sugeruję, aby wpisać sudo apt-get upgrade && exitto spowoduje wyjście z terminala po zakończeniu aktualizacji. Gdy aktualizacja zostanie anulowana, terminal się nie zamknie, ale myślę, że tak nie będzie.

Marton
źródło