Я пытаюсь принудительно ввести пароль для определенных команд с помощью sudo каждый раз при выполнении, независимо от того, был ли пароль введен секунду назад. Есть способ сделать это?
Каждый результат поиска в Google просто объясняет, как удалить запрос пароля с помощью NOPASSWD, что нормально, но я все еще хочу, чтобы КОНКРЕТНЫЕ команды получали запрос пароля каждый раз, когда они выполняются, даже если пароль был введен только секунду назад.
Мой подход был таким:
Defaults !authenticate
Cmnd_Alias WITHPW = rm -R, shutdown,
Defaults:WITHPW authenticate
Может кто-нибудь объяснить, правильно ли это или что я могу сделать?
Спасибо,
А /
Есть разница между двумя вариантами:
authenticate
Если установлено, пользователи должны аутентифицироваться с помощью пароля (или других средств аутентификации), прежде чем они смогут запускать команды. Это значение по умолчанию можно изменить с помощью
PASSWD
иNOPASSWD
теги. Этот флаг на по умолчанию.
passwd_timeout
Количество минут до истечения времени ожидания запроса пароля sudo, или
0
без тайм-аута. Тайм-аут может включать дробный компонент, если минутная детализация недостаточна, например2.5
. По умолчанию5
.
Хотя вы можете установить как Cmnd_Alias
, то passwd_timeout
- правильный вариант для того, чего вы пытаетесь достичь.
Затем давайте посмотрим на синтаксис для Defaults
:
Default_Type ::= 'Defaults' |
'Defaults' '@' Host_List |
'Defaults' ':' User_List |
'Defaults' '!' Cmnd_List |
'Defaults' '>' Runas_List
Default_Entry ::= Default_Type Parameter_List
Parameter_List ::= Parameter |
Parameter ',' Parameter_List
Parameter ::= Parameter '=' Value |
Parameter '+=' Value |
Parameter '-=' Value |
'!'* Parameter
При указании Cmnd_List
или Cmnd_Alias
тебе нужно !
префикс, в результате:
Cmnd_Alias WITHPW = /usr/bin/rm -R, /usr/sbin/shutdown
Defaults:!WITHPW passwd_timeout=0