Посмотрите, идет ли sudo режим (пароль кэшируется) на приглашении командной строки

Я хочу знать, возможно ли указать на командной строке (идеально в подсказке), идет ли sudo режим.

sudo режимом я подразумеваю, что уже ввел свой пароль правильно однажды на этой сессии оболочки, и это еще не истекло, но все еще кэшируется.

Другими словами, могу я говорить так или иначе ли sudo команда, которую я собираюсь выполнить, попросит у меня моего пароля или будет использовать кэшируемые учетные данные?

3
задан 18 October 2016 в 20:45

2 ответа

В течение долгого времени я использовал

sudo -S true < /dev/null 2> /dev/null

, Вы могли бы попробовать это, но недавнее обновление, кажется, повредило это, так как я теперь получаю отказ сегментации.

Вы могли бы попробовать sudo -n true 2> /dev/null (никакой -v). Это, кажется, работает на меня, не возобновляя тайм-аут.

можно выполнить это в подсказке различными способами включая что-то как:

PS1='\u:\w$(sudo -n true 2> /dev/null && echo " : sudo :") \$ '

Это зависит от promptvars опция, которая включена по умолчанию.

Примечание, что, после того как подсказка выпущена, индикатор, не обновляется снова. Таким образом, если подсказка находится там, пока тайм-аут не истекает, это может указать, что sudo активно даже при том, что это истекло.

2
ответ дан 1 December 2019 в 16:21

Нет никакой команды для прямого показа остающегося времени для кэшируемых учетных данных, необходимо было бы написать сценарий их.

От https://unix.stackexchange.com/questions/115506/sudo-testing-for-credentials

sudo -nv 2> /dev/null

даст значение выхода 0, если пароль будет кэшироваться, Вы можете изменять сценарий в той ссылке или писать Ваше собственное.

Поочередно метки времени хранятся в /var/lib/sudo, таким образом, Вы могли, вероятно, записать сценарий, чтобы отобразить или проверить метку времени также.

1
ответ дан 1 December 2019 в 16:21

Другие вопросы по тегам:

Похожие вопросы: