Почему опция sudoers NOPASSWD не работает?

У меня есть строка NOPASSWD в / etc / sudoers (отредактировано с помощью visudo)

gatoatigrado    ALL=(ALL) NOPASSWD: /bin/set-slow-cpufreq

Однако вывод:

gatoatigrado@coral:~> sudo -n /bin/set-slow-cpufreq
sudo: sorry, a password is required to run sudo

Этот вид команды работает на машина OpenSuSE, но не в Ubuntu 11.10. Что я делаю не так?

Примечание : я не могу найти соответствующие сообщения системного журнала, например, через tail -f /var/log/syslog.

Редактировать

Вот /etc/sudoers.

Defaults    env_reset

# things I've tried copying from an opensuse machine
Defaults always_set_home
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"

root    ALL=(ALL:ALL) ALL
gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq
%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL
105
задан 1 November 2017 в 11:16

4 ответа

В удаленной системе удалите шифрование, но пусть все будет принадлежать руту, как в группе «Администраторы» - это не 0!
Вы можете изменить #sudo -g Administrators на те, которые нуждаются полный доступ - не в файле sudo, а в профиле .login. Любой стандартный скрипт теперь может иметь доступ к удаленному компьютеру как «root», и вы можете защитить файлы, которые должны быть защищены.
Другая удобная «группа» - это «Песочница» с каталогом входа в кеш браузера и может читать это свободно и ничего больше. Используйте первый символ в верхнем регистре.

0
ответ дан 1 November 2017 в 11:16

Просто столкнулся с этим тоже.

Моя ситуация - я настраиваю удаленную систему, которая будет работать без головы. Я включил полное шифрование диска (в противном случае злоумышленник с физическим доступом может сделать все, что он или она захочет). Я хочу авторизоваться только с ключом публикации (я удалю пароль, чтобы схема «есть что-то, знаю что-то» была паролем. protected keypair - вход в систему root, конечно, полностью отключен)

Установщик Ubuntu запрашивает администратора без полномочий root, который добавляется в группу sudo. Затем я вручную добавил себя в файл sudoers, используя sudo visudo:

my_username ALL=(ALL:ALL) NOPASSWD:ALL

. ПРИМЕЧАНИЕ. Если вы используете nopasswd на своем ноутбуке, вы должны всегда блокировать компьютер, когда уходите, иначе случайный злоумышленник может Много компромиссов, пока вы встаете, чтобы положить сливки в кофе

Мне все еще приходилось проверять пароль.

Ответ энзотиба является ключом к тому, что происходит. Группа sudo появляется в sudoers после ввода моего имени пользователя.

Вместо того, чтобы перемещать свою запись ниже линии sudo, я просто удалил строку, которую я ранее добавил, а затем добавил NOPASSWD к записи для %sudo

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

Дополнительные ПРЕДУПРЕЖДЕНИЯ: всегда редактируйте sudoers с помощью visudo. (sudo visudo) Кроме того, открыв другое окно, переключенное на пользователя root, вы сможете исправить любые ошибки, которые вы можете сделать при изменении файла sudoers.

0
ответ дан 1 November 2017 в 11:16

В идеале, если вы настраиваете, какие команды можно запускать через sudo, вам следует вносить эти изменения в отдельный файл в разделе /etc/sudoers.d/ вместо непосредственного редактирования файла sudoers. Вы также должны всегда использовать visudo для редактирования файла (ов).

Пример: sudo visudo -f /etc/sudoers.d/slowcpu

Вставьте строку, предоставляющую разрешение: gatoatigrado ALL=NOPASSWD: /bin/set-slow-cpufreq

Затем сохраните и выйдите, и visudo предупредит вас, если у вас есть какие-либо синтаксические ошибки.

Вы можете запустить sudo -l, чтобы просмотреть разрешения, предоставленные вашему пользователю, если какая-либо из пользовательских команд NOPASSWD появится ДО любой команды %groupyouarein ALL=(ALL) ALL в выходных данных, вам будет предложено ввести пароль.

]

Если вы обнаружите, что создаете много этих файлов sudoers.d, то, возможно, вы захотите создать их по имени для каждого пользователя, чтобы их было проще визуализировать. Имейте в виду, что упорядочение ИМЯ ФАЙЛОВ и ПРАВИЛ в файле очень важно, выигрывает ПОСЛЕДНЯЯ загрузка, независимо от того, разрешено ли оно БОЛЬШЕ или МЕНЬШЕ, чем предыдущие записи.

Вы можете управлять порядком имен файлов, используя префикс 00-99 или aa / bb / cc, хотя также имейте в виду, что если у вас есть ЛЮБЫЕ файлы, которые не имеют числового префикса, они будут загружаться после нумерованного файлы, переопределяющие настройки. Это потому, что в зависимости от ваших языковых настроек «лексическая сортировка», оболочка сначала использует числа сортировки, а затем может перемежать верхний и нижний регистр при сортировке в «возрастающем» порядке.

Попробуйте запустить printf '%s\n' {{0..99},{A-Z},{a-z}} | sort и printf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sort, чтобы увидеть, печатает ли ваш текущий язык AaBbCc и т. Д. Или ABC, а затем abc, чтобы определить, какой будет лучший «последний» префикс букв для использования.

0
ответ дан 1 November 2017 в 11:16

Вы должны поместить эту строку после строки с правилом для группы sudo, потому что, как говорится в справочной странице sudoers:

   When multiple entries match for a user, they are applied in order.
   Where there are multiple matches, the last match is used (which is not
   necessarily the most specific match).
0
ответ дан 1 November 2017 в 11:16

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

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