Как включить беспарольный просмотр разрешений sudo (`sudo -l`) без добавления `sudo -l` в /etc/sudoers?

Как включить беспарольный просмотр разрешений sudo (`sudo -l`) без добавления `sudo -l` в /etc/sudoers?

Я хочу, чтобы все пользователи могли просматривать свои 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 ofvi`). Еще лучше, держите открытой другую оболочку root во время тестирования, чтобы не потерять доступ.


К сожалению, похоже, чтоошибка вsudo, которыйисправлено в 1.8.28, может игнорироватьlistpw=never настройку. В этом сценарии выне должениспользуйте listpw=never, но вместо этого создайте бессмысленную запись, например такую

ALL ALL=(ALL) NOPASSWD: /bin/false

Конечный результат должен быть таким:sudo -l сработаетлюбая запись имеетNOPASSWDправило, и вы достигнете своего требования.

Связанный контент