Лучший способ добавить 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
задан 17 January 2014 в 13:18

2 ответа

Соображения для редактирования sudoers файлы

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

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

Для настольных систем 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 к корню питание непосредственно или через состав группы.

Совещание sudo к корню питание составом группы по сравнению с в расчете на пользователя

Основное различие между "Путем 1" и "Путем 2":

  • "Путь 1" делает пользователя администратором и присуждает способность к администраторам к командам выполнения как корень с sudo не будучи запрошенным пароль.
  • "Путь 2" вручает эту способность конкретно одному пользователю.

Если Вы не хотите, чтобы все администраторы смогли к sudo к корню без пароля (по умолчанию, введение пароля требуется), "Путь 2" предпочтителен.

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

Поэтому лучшая вещь сделать может состоять в том, чтобы добавить vagrant как администратор и отдельно совещаются NOPASSWD способности к vagrant конкретно (а не администраторам в целом).

10
ответ дан 17 January 2014 в 13:18

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

echo vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
0
ответ дан 17 January 2014 в 13:18

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

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