Лучший способ добавить NOPASSWD бродячего пользователя?

Как лучше добавить NOPASSWD с бродячим пользователем?

Способ 1:

groupadd -r admin
usermod -a -G admin vagrant
cp /etc/sudoers /etc/sudoers.orig
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers 

Способ 2:

# Set up sudo
echo %vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
chmod 0440 /etc/sudoers.d/vagrant
# Setup sudo to allow no-password sudo for "sudo"
usermod -a -G sudo vagrant

или, может быть, есть еще лучше?

7
задан 05.05.2020, 08:03

2 ответа

Рекомендации по редактированию sudoers файлов

Редактирование вручную любого файла, который вы создаете или модифицируете, иногда предпочтительнее, чем редактирование с помощью echo ... > или sed - особенно sed, если вы не очень опытны с этим. Это потому, что он более четко показывает влияние ваших изменений, а также потому, что для файла, который вы на самом деле не создаете (например, sudoers в «Способе 1»), открытие файла в текстовом редакторе показывает вам другое содержимое файл, который может быть актуальным. Прежде чем вносить в нее изменения, вы, как правило, должны понимать свою текущую конфигурацию, и чтение любого файла конфигурации, который вы редактируете, иногда полезно для этой цели.

Однако, что более важно, маленькая ошибка при редактировании /etc/sudoers или любого файла в /etc/sudoers.d заставляет sudo полностью отказаться от работы, пока пробник не будет исправлен.

Для настольных систем Ubuntu, но не для большинства серверных систем, относительно легко исправить для этого ; в противном случае вам, возможно, придется загружаться в режиме восстановления или с живого CD / DVD / USB, чтобы решить проблему блокировки от возможности выполнять какие-либо административные действия.

В любом случае, вы должны использовать visudo для редактирования /etc/sudoers и любых файлов в /etc/sudoers.d.

Для /etc/sudoers: sudo visudo

Для файла в /etc/sudoers.d с именем vagrant: sudo visudo /etc/sudoers.d/vagrant

visudo вы редактируете временный файл и один раз Вы вышли, проверяет ваш синтаксис, чтобы убедиться, что он правильный, прежде чем копировать временный файл в файл реальной конфигурации.

Благодаря этому механизму, , если вы хотите использовать однострочные терминалы вместо текстового редактора , вы должны иметь возможность использовать visudo в сочетании с sed или каким-то другим механизмом, похожим на каналы (например, tee) для безопасного редактирования файлов sudoers способом, сравнимым с тем, что вы использовали в «Пути 1» и «Пути 2».

Возможно, кто-то еще опубликует подробный ответ как это сделать, если нет, то в следующий раз, когда у меня будет доступ к машине, подходящей для такого тестирования, я могу попытаться выяснить это и расширить этот ответ на примере. В качестве альтернативы, можно безопасно использовать sed или echo для создания / изменить sudoers и sudoers.d конфигурацию можно рассматривать как предмет отдельного вопроса . Это особенно верно, если ваш основной интерес здесь состоит в том, давать ли NOPASSWD sudo-to -root power напрямую или через членство в группе.

Предоставление полномочий sudo-to-root членству в группе по сравнению с пользователем

Основное различие между «способом 1» и « Путь 2 "это: [1 159]

  • «Способ 1» делает пользователя администратором и предоставляет администраторам возможность выполнять команды от имени пользователя root с sudo без запроса пароля.
  • «Способ 2» наделяет эту способность , в частности , одним пользователем.

Если вы не хотите, чтобы все администраторы были в состоянии sudo-to-root без пароля (по умолчанию ввод пароля необходим), «Способ 2» предпочтителен.

Однако любой пользователь, которому вы хотите иметь возможность запускать произвольные команды от имени пользователя root, вероятно, должен также быть администратором! (Это позволит им использовать pkexec и позволит избежать путаницы, если вы или сотрудник пытаетесь выяснить, кто все пользователи имеют возможность выполнять задачи системного администрирования.)

Поэтому лучше всего do вполне может быть , чтобы добавить vagrant в качестве администратора и отдельно предоставить NOPASSWD возможности конкретно vagrant конкретно (и не администраторам в целом) . [+1162]

10
ответ дан 05.05.2020, 08:04

Пожалуйста, удалите "%" с вашего пути 2, это не сработало, так как "vagrant" - это пользователь, а не группа, строка для замены -

echo vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
3
ответ дан 05.05.2020, 08:04

Теги

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