Pacman/Yay - czas oczekiwania na hasło

Cześć,

często aktualizuję Manjaro i Maboxa przez ssh, ale mam kłopot, bo kiedy yay pobierze wszystkie pakiety i pyta o hasło, by je zainstalować, to czeka chyba 5 min, po czym muszę ponownie uruchomić komendę (jeśli nie zdążę). Pół biedy, gdy chodzi o standardowe repo, ale gdy aktualizuje np. Waterfoxa z Aur, to wszystko zajmuje znowu wieki. Często mi się zdarza, że muszę kilka razy go napuszczać, bo się o kilka/kilkadziesiąt sek. spóźnię z hasłem.

Co zrobić, by pacman/yay czekały dłużej na hasło? Chciałbym wyłączyć limit czasu.

Też mnie wkurza ten problem, ale zawsze o nim zapominam.
Wydaje się, że można to obejść dodając do configu yay opcję "sudoloop": true
Najprościej:

yay --save --sudoloop

Jeszcze nie miałem okazji tego sprawdzić, ale tak napisano w manualu :slight_smile:

Również czasem zderzam się z tym problemem, ale zazwyczaj podczas robienia backup’u, choć i w trakcie update’u także. Zastanawiałem się nad tym, czy istnieje jakiś sposób na to, aby czas oczekiwania zmienić tymczasowo, na czas wykonywania komendy/skryptu - na przykład poprzez wartość jakiejś zmiennej (jakiej?).

Wygląda na to, że pamac czeka na wprowadzenie hasła do skutku, albo czas oczekiwania jest bardzo długi, bo jeszcze nie zdarzyło mi się, aby stracił cierpliwość.

@napcok, działa, dzięki. Choć nie do końca jak chciałem, bo nie czekał na hasło po kompilacji waterfoxa, a zwyczajnie zainstalował, więc sesja musiała trwać parę h.
Bardziej chodziło mi o wydłużenie czasu oczekiwania, ale to może będzie nawet lepsze (wygodniejsze). :wink:

@azja, nie wiem jak długo czeka na Ciebie, ale na mnie góra chyba 10 min (nigdy nie sprawdzałem). Zapuszczam aktualizację i dalej pracuję regularnie sprawdzając. Jednak w końcu zapomnę, albo muszę odejść od kompa, wracam po kwadransie, a tu już po jabłkach. :wink:

Dzięki za pomoc :slight_smile:

Wygodniejsze na pewno, ale zdecydowanie mniej bezpieczne.


Odnoszę wrażenie, że u mnie trwa, to dłużej, ale to tylko wrażenie - sprawdzę przy najbliższej okazji.


Pomysł, który przyszedł mi przed chwilą do głowy:
jeżeli mamy do czynienia ze skryptem, to można przed każdą komendą, wymagającą uprawnień root’a, wstawić dźwięk, aby zwracał uwagę i zmieniać radykalnie kolory w terminalu (jeżeli wszystko odbywa się w nim), coby również zadziałać na wzrok. Gwałtowne piknięcie zostanie przez mózg zarejestrowane, podobnie jak zmiana barwnej plamy (lub pulsowanie).

Można też kombinować z ustawieniem czasu przez jaki sudo pamięta hasło.
Przykładowo dodając wpis do /etc/sudoers - ten plik zazwyczaj edytuje się poleceniem visudo:

Defaults:USER timestamp_timeout=30

W przykładzie: 30 oznacza 30 minut - czas przez jaki sudo nie będzie ponownie pytać o hasło.

Ja u siebie zrobiłem to w końcu sposobem z poprzedniego postu - takie rozwiązanie mi najlepiej pasuje.

Znam temat:
https://wiki.archlinux.org/index.php/Sudo#Reduce_the_number_of_times_you_have_to_type_a_password
ale problem z takim rozwiązaniem polega na tym, że zmienia wszystko i zawsze, a ja wolałbym tylko wtedy gdy zechcę.


Ale, ale …

$ sudo --help
[...]
  -B, --bell                    dzwonek przy zapytaniu
  -v, --validate                uaktualnienie znacznika czasu użytkownika bez uruchamiania polecenia
[...]

-B, --bell

wydaje dźwięk, o którym wspominałem wyżej;

-v, --validate

jeżeli dobrze rozumiem, to licznik (czasu przechowywania hasła w pamięci) zaczyna liczyć od nowa, po każdym użyciu sudo. Z man’a nie bardzo, to wynika, ale link powyżej mówi:

If you are using a lot of sudo commands on a row, it is more logical to refresh the timeout every time you use sudo than to increase timestamp_timeout. Refreshing the timeout can be done with sudo -v

To już coś. Nie to o co mi chodzi, ale dobry kierunek.


EDIT-20200708-0150-v, --validate działa jednak trochę inaczej:

$ man sudo
[...]
-v, --validate
    Update the users cached credentials, authenticating the user if necessary.
    For the sudoers plugin, this extends the sudo timeout for another 5 minutes by default,
    but does not run a command. Not all security policies support cached credentials.
[...]

czyli podbija czas, ale nie wykonuje komendy, więc trzeba wykonać dwa polecenia - jedno ‘standardowe’, jedno z -v.
Albo dodać alias:

~/.bashrc
--------------------------------------------
alias sudo='sudo -v; sudo '

Poza tym jest jeszcze jeden parametr, nie do końca dla mnie jasny:

-T timeout, --command-timeout=timeout

$ man sudo
[...]
-T timeout, --command-timeout=timeout
    Used to set a timeout for the command. If the timeout expires before the command has exited,
    the command will be terminated. The security policy may restrict the ability to set command timeouts.
    The sudoers policy requires that user-specified timeouts be explicitly enabled.
[...]

Niejasny, bo nie wiem, czy dotyczy samego sudo, czy może komendy wykonywanej przy pomocy sudo.

Uruchomiłem wczoraj wieczorem:

$ pamac update

Gdy zapytał o hasło, to zostawiłem go, na czas jakiś. Zapomniałem o sprawie, a w nocy uśpiłem system i wybudziłem go ponownie dzisiaj, wieczorem. Popracowałem trochę i pojawiła się potrzeba skorzystania z terminala - rozwinąłem go, a tu niespodzianka w postaci cierpliwie czekającego Pamac’a. Wpisałem hasło, wcisnąłem enter, poszedł dalej i zrobił, co miał do zrobienia:

[...]
Password: 
==== AUTHENTICATION COMPLETE ====
Synchronizacja baz danych pakietów...
Nie ma nic do zrobienia.
Operacja zakończona sukcesem.

Wygląda na to, że czeka opór, a na pewno długo - przynajmniej ponad dobę.