%20%D0%B1%D0%B5%D0%B7%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%60sudo%20-l%60%20%D0%B2%20%2Fetc%2Fsudoers%3F.png)
Я хочу, чтобы все пользователи могли просматривать свои sudo
разрешения без ввода пароля.
Есть ли способ разрешить это без ALL ALL=(ALL) NOPASSWD: /usr/bin/sudo -l
добавления /etc/sudoers
?
bob@cad50ee0931e:/$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for bob:
решение1
Документация к sudoers
файлу ( man sudoers
) предлагает следующие предложения
По умолчанию
sudo
требует, чтобы пользователь прошел аутентификацию перед выполнением команды. [...] еслиNOPASSWD
применен клюбойзаписей для пользователя на текущем хосте, он или она сможет работатьsudo -l
без пароля. Это поведение может быть переопределено с помощью [...]listpw
опций.
и
listpw
Эта опция контролирует, когда будет запрашиваться пароль при запуске пользователемsudo
с-l
опцией. Она имеет следующие возможные значения:
all
- Все записи пользователяsudoers
для текущего хоста должны иметьNOPASSWD
установленный флаг, чтобы избежать ввода пароля.always
- Для использования этой опции пользователю всегда необходимо вводить пароль-l
.any
- По крайней мере одна из записей пользователяsudoers
для текущего хоста должна иметьNOPASSWD
установленный флаг, чтобы избежать ввода пароля.never
- Пользователю никогда не нужно вводить пароль для использования этой-l
опции.
Предполагая, что вы хотите избежать NOPASSWD
, вы должны установить listpw=never
:
Defaults listpw=never
Используйте visudo
для редактирования и проверки sudoers
файла (совет: используйте , EDITOR=nano visudo
если вы хотите использовать nano
для редактирования sudoers file instead of
vi`). Еще лучше, держите открытой другую оболочку root во время тестирования, чтобы не потерять доступ.
К сожалению, похоже, чтоошибка вsudo
, которыйисправлено в 1.8.28, может игнорироватьlistpw=never
настройку. В этом сценарии выне должениспользуйте listpw=never
, но вместо этого создайте бессмысленную запись, например такую
ALL ALL=(ALL) NOPASSWD: /bin/false
Конечный результат должен быть таким:sudo -l
сработаетлюбая запись имеетNOPASSWD
правило, и вы достигнете своего требования.