У меня есть строка 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
В удаленной системе удалите шифрование, но пусть все будет принадлежать руту, как в группе «Администраторы» - это не 0!
Вы можете изменить #sudo -g Administrators
на те, которые нуждаются полный доступ - не в файле sudo
, а в профиле .login
. Любой стандартный скрипт теперь может иметь доступ к удаленному компьютеру как «root», и вы можете защитить файлы, которые должны быть защищены.
Другая удобная «группа» - это «Песочница» с каталогом входа в кеш браузера и может читать это свободно и ничего больше. Используйте первый символ в верхнем регистре.
Просто столкнулся с этим тоже.
Моя ситуация - я настраиваю удаленную систему, которая будет работать без головы. Я включил полное шифрование диска (в противном случае злоумышленник с физическим доступом может сделать все, что он или она захочет). Я хочу авторизоваться только с ключом публикации (я удалю пароль, чтобы схема «есть что-то, знаю что-то» была паролем. protected keypair - вход в систему root, конечно, полностью отключен)
Установщик Ubuntu запрашивает администратора без полномочий root, который добавляется в группу sudo
. Затем я вручную добавил себя в файл sudoers
, используя sudo visudo
:
my_username ALL=(ALL:ALL) NOPASSWD:ALL
Мне все еще приходилось проверять пароль.
Ответ энзотиба является ключом к тому, что происходит. Группа sudo появляется в sudoers после ввода моего имени пользователя.
Вместо того, чтобы перемещать свою запись ниже линии sudo, я просто удалил строку, которую я ранее добавил, а затем добавил NOPASSWD
к записи для %sudo
, которая, кажется, работает. Опять же, используйте nopasswd, только если вам это действительно нужно (в моем случае это было именно то, что мне было нужно, для большинства пользователей лучше всего требовать пароль для активности sudo)
Дополнительные ПРЕДУПРЕЖДЕНИЯ: всегда редактируйте sudoers с помощью visudo. (sudo visudo) Кроме того, открыв другое окно, переключенное на пользователя root, вы сможете исправить любые ошибки, которые вы можете сделать при изменении файла sudoers.
В идеале, если вы настраиваете, какие команды можно запускать через 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
, чтобы определить, какой будет лучший «последний» префикс букв для использования.
Вы должны поместить эту строку после строки с правилом для группы 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).