Добавление NOPASSWD в /etc /sudoers не работает

Здесь 14.04. I SSHed в мою машину, добавила следующую строку в /etc/sudoers:

myuser   ALL=NOPASSWD: ALL

И затем попытался запустить:

sudo mkdir /etc/blah

... , и меня спрашивают мой пароль. Почему?!?

Я выполняю not запрос на мой пароль при выполнении этой операции. Обратите внимание, что когда я запускаю ls -ltr /, я получаю:

drwxr-xr-x 94 root root  4096 Jul 30 13:28 etc

Но я не думаю, что это имеет значение, потому что я настроен как «судоер», верно?

Что еще более важно, что мне нужно сделать, чтобы я мог запускать sudo mkdir /etc/blah как мой текущий пользователь (myuser) без запроса пароля?

Вот мой весь /etc/sudoers файл:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root      ALL=(ALL:ALL) ALL
fizzbuzz  ALL=NOPASSWD: ALL
chadmin   ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
37 голосов | спросил Zac 30 J000000Wednesday14 2014, 21:31:52

1 ответ


59

Это последовательность /порядок правил, которые вызвали это. Последнее правило принимает предпочтение.

Чтобы исправить вашу проблему, просто переместите свои строки,

fizzbuzz  ALL=NOPASSWD: ALL
chadmin   ALL=NOPASSWD: ALL

из файла sudoers в

sudo visudo -f /etc/sudoers.d/myOverrides 

Это лучший подход, чем редактирование файла sudoers с помощью обычного текстового редактора. Если вы случайно вставляете ошибки в файл, вы можете больше не работать sudo . Всегда используйте visudo , чтобы синтаксис был проверен и вы получили предупреждения об ошибках!

Ваша директива не работает, потому что она переопределяется:

%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

Если вы запустите команду groups, вы увидите, что ваш пользователь принадлежит к этим группам.

ответил Lety 30 J000000Wednesday14 2014, 21:56:50

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132