/ etc / sudoers vs /etc/sudoers.d/ для включения sudo для пользователя

Я использую Yocto для создания изображения для доски. Я отключил пользователя root . Я добавляю нового пользователя, скажем, adminuser1 . Как мне кажется, есть два варианта сделать adminuser1 качестве администратора.

  • Добавить adminuser1 в sudoers в / etc / sudoers
  • Создайте новый файл /etc/sudoers.d/0001_admin1 и добавьте строку adminuser1 ALL=(ALL) ALL

По умолчанию /etc/sudoers имеет группу sudo прокомментированную # %sudo ALL=(ALL) ALL

Я пытаюсь понять, по какому принципу лучше работать с точки зрения безопасности:

  • Должен ли я добавить adminuser1 в группу sudo и раскомментировать # %sudo ALL=(ALL) ALL в /etc/sudoers
  • Добавление /etc/sudoers.d/0001_admin1 и добавление только adminuser1 ALL=(ALL) ALL в файл.

Выбор между sudoers и sudoers.d имеет ничего общего с безопасностью, но все с ремонтопригодностью.

  • Раскомментируя строку группы sudo в /etc/sudoers , вы можете добавить всех пользователей, которым необходим доступ sudo к группе sudo . Это может быть проще или проще, чем добавлять новый файл в sudoers.d , в зависимости от вашей установки. Однако изменение загруженного конфигурационного файла может усложнить ситуацию (например, если обновление вашего дистрибутива будет перезаписано файлом sudoers, вы должны убедиться, что ваше изменение сохранено).
  • Добавив файл в /etc/sudoers.d , у вас нет проблемы с обновлением, о которой я намекаю выше, но если вы там явно добавили конфигурацию для adminuser1 а не в группу sudo , добавив больше пользователей, чтобы права sudo требуется добавить больше файлов в /etc/sudoers.d ; это может быть или не быть более привлекательным, чем просто добавлять их в нужную группу.

Нет ни одного способа, который является «лучшим»; и, безусловно, нет проблемы с безопасностью, основанной на «каком файле я настраиваю права sudo». Просто подумайте о преимуществах и / или недостатках обоих методов и используйте то, что лучше всего подходит для вашего случая использования.

Из Википедии:

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

Это означает, что вариант 2 является лучшим, потому что вы можете настроить разрешение своего администратора1. С вариантом 1, когда в будущем вы добавите adminuser2 в группу sudo, тогда они будут иметь те же привилегии, которые не позволят вам адаптировать привилегии двух пользователей.

Кроме того, всегда используйте visudo для редактирования файла sudoers.

НТН