Jak określić limit czasu dla sesji Sudo


Podczas pracy z poleceniem sudo do wykonywania zadań administracyjnych w Linuksie możesz zauważyć, że nawet jeśli podałeś hasło sudo jakiś czas temu, zostaniesz poproszony o podanie go ponownie po pewnym czasie. Dzieje się tak z powodu limitu czasu sesji sudo, który jest domyślnie ustawiony na 15 minut. Jeśli wprowadzisz polecenie sudo po tych 15 minutach nawet w tej samej sesji terminala, zostaniesz poproszony o ponowne wprowadzenie hasła. Jako administrator Linuksa możesz chcieć wydłużyć lub skrócić limit czasu sesji sudo niż domyślnie piętnaście minut.

W tym samouczku opisano sposób wprowadzania bardzo prostych zmian w pliku / etc / sudoers w celu określenia limitu czasu dla sesji sudo. Polecenia wymienione w tym artykule zostały wykonane w Ubuntu 18; jednak działają one tak samo w starszych wersjach Ubuntu.

Określ czas X sesji sudo

W tym przykładzie zmienimy limit czasu sesji sudo na 10 minut. Wykonaj następujące kroki, aby zmienić limit czasu sesji sudo na tak długo, jak chcesz:

Otwórz terminal Ubuntu, naciskając Ctrl + Alt + T lub poprzez Ubuntu Dash.

Ponieważ musisz edytować plik sudoers znajdujący się w folderach itp., Wprowadź następującą komendę:

$ sudo visudo

Zostaniesz poproszony o podanie hasła dla użytkownika sudo.

Zastanawiasz się, dlaczego nie otwieramy pliku sudoers, tak jak otwieramy inne pliki tekstowe. Odpowiedź jest taka, że ​​w przeciwieństwie do innych edytorów tekstu, visudo weryfikuje składnię tekstu wprowadzanego do pliku. Dzięki temu nie będziesz wprowadzać żadnych wadliwych zmian, które mogą spowodować poważne konsekwencje. Na przykład wprowadzenie błędnych zmian w pliku sudoers może kosztować niemożność zalogowania się jako użytkownik uprzywilejowany w celu wykonania którejkolwiek z podwyższonych funkcji.

Wpisz hasło i wprowadź. Plik sudoers otworzy się w edytorze Nano, ponieważ jest domyślnym edytorem tekstu dla Ubuntu 18.04.

Na powyższym obrazku widać następujący wiersz:

Defaults env_reset

Ten wiersz odpowiada za limit czasu sesji sudo. Musisz wprowadzić następujące zmiany w tym wierszu:

Defaults env_reset, timestamp_timeout=x

Tutaj x to czas w minutach, który możesz określić, aby ustawić wymagany limit czasu. Podczas ustawiania tego limitu czasu zwróć uwagę na następujące punkty:

Jeśli określisz limit czasu na 0, twoja sesja potrwa tylko 0 minut. Oznacza to, że zostaniesz poproszony o podanie hasła do każdego polecenia sudo.

Jeśli ustawisz ten czas na mniej niż zero (ujemny), polecenie sudo nie będzie działać poprawnie.

W tym przykładzie skracam domyślny czas od 15 minut do 10 minut dzięki następującym zmianom w pliku sudoers:

Naciśnij Ctrl + X , aby wyjść z pliku po wprowadzeniu wymaganych zmian. Zostaniesz zapytany, czy chcesz zapisać zmodyfikowany plik. Naciśnij Y , aby zapisać zmiany.

Zostaniesz również poproszony o podanie nazwy pliku do zapisania. Naciśnij Enter, ponieważ nie chcemy tutaj zmieniać nazwy pliku.

Twoje zmiany zostaną zapisane, a sesja sudo potrwa do podanych minut za każdym razem, gdy użyjesz polecenia sudo.

Ustaw sesję sudo do ostatniego zamknięcia terminalu

Za pomocą prostego polecenia możesz pozwolić, aby sesja sudo trwała do momentu zamknięcia terminalu, bez względu na to, jak długo terminal pozostaje otwarty. Po uruchomieniu tego polecenia nie zostaniesz poproszony o podanie hasła do żadnej komendy wymagającej uprawnień sudo:

$ sudo -s

Zakończ sesję sudo

Po podaniu hasła sudo możesz zakończyć sesję sudo nawet przed limit czasu określony w pliku sudoers za pomocą następującego prostego polecenia:

$ sudo -k

Należy pamiętać, że to polecenie nie zakończy sesji, jeśli użyłeś „sudo -s” podczas sesji terminalowej.

Tak więc w ten sposób możesz skrócić lub wydłużyć czas trwania sesji sudo, dokonując zmiany jednej linii w pliku / etc / sudoers. Możesz także użyć innych poleceń wymienionych w tym artykule, aby zakończyć sesję sudo lub wydłużyć ją do końca sesji terminalowej.

Komentarze