Какой метод использовать для предоставления sudo

13

В чем разница между добавлением пользователя /etc/sudoersи usermod -a -G sudo? Какой метод следует использовать для предоставления sudo?

Sonique
источник
6
Для Ubuntu вы должны очень сильно избегать редактирования /etc/sudoersпри любых условиях. Вместо этого добавьте фрагменты конфигурации в /etc/sudoers.dкаталог. Использование папки фрагментов упрощает обновление, поскольку вы изменили conffile.
Зоредаче
@Zoredache - отличный момент. Вас волнует, добавлю ли я это в свой ответ? Я не хочу брать кредит за это, но этот совет должен где-то жить в ответе на случай, если боги комментария обстреляют это по какой-то причине.
EEAA
2
@EEAA, я даю вам разрешение на использование вышеизложенного и любые другие комментарии, которые я публикую, чтобы объединить их с реальными ответами. Я добавляю комментарии, потому что я слишком ленив / занят, чтобы добавить полный ответ, но я не против, если люди примут мои комментарии и интегрируют их в полный хороший ответ.
Зоредаче

Ответы:

19

Если вы можете избежать этого, никогда не предоставляйте привилегии sudo отдельным пользователям. Всегда предоставляйте привилегии группе, а затем добавляйте пользователей в эту группу.

Для серверов на основе Ubuntu вместо добавления строк /etc/sudoersдобавьте фрагменты файла конфигурации в /etc/sudoers.d. Это более гибко, проще для понимания, более устойчиво при обновлении и лучше работает с системами, управляемыми системами управления конфигурациями.

ПРИМЕЧАНИЕ: никогда не редактируйте /etc/sudoersнапрямую. Вместо этого используйте команду visudo, которая будет выполнять синтаксическую проверку ваших изменений, предотвращая нарушение вашей конфигурации sudo с неверным синтаксисом.

EEAA
источник
почему бы не добавить группу в /etc/sudoers?
Flak DiNenno
1
@FlakDiNenno - верно, именно это я и предложил.
EEAA
аааа ... я думал, что вы имеете в видуusermod -a -G sudo
Flak DiNenno
+1 за предупреждение об использовании visudo вместо прямого редактирования
Flak DiNenno
Хороший вопрос о visudo. Некоторые люди не понимают, что есть причина, /etc/sudoersпомеченная как доступная только для чтения.
ub3rst4r
9

Я только что нашел этот маленький кусочек ... кажется, вам нужно быть особенно осторожным при использовании -Gопции в Ubuntu, в частности, в -gопции комбинации . Так:

  1. Используйте usermod -aGдля добавления пользователя (ей) в группу.
  2. Затем, как предложила @EEAA , добавьте группу в файл / etc / sudoers с помощью $ sudovisudoкоманды (автоматически вызывает привилегированный редактор с проверкой синтаксиса).

Вот информация об этой -aGопции в Ubuntu, взятая здесь http://ubuntuforums.org/showthread.php?t=1240477 :

«Я читаю « Командную строку Linux и Библию сценариев »Wiley, и они сказали, что usermod -G« добавляет »группу к любой изменяемой учетной записи пользователя. Я обнаружил, что в Ubuntu это неверно, не знаю, отличается ли оно от других дистрибутивов, или опечатка в книге. Он удаляет вас из КАЖДОЙ другой группы, к которой вы принадлежите, за исключением группы пользователей по умолчанию (измененной параметром -g). Мне удалось удалить себя из группы администраторов и больше не мог ничего судить. Слава Богу за режим восстановления ...

Правильный вариант - usermod -aG . Урок выучен...

Flak DiNenno
источник
2
может ли downvoter быть любезным, чтобы обеспечить некоторую конструктивную критику здесь. ТИА.
Flak DiNenno
Я не отрицал вас, но ваш «ответ» на самом деле не отвечает на заданный вопрос. Это довольно строгий сайт вопросов и ответов, и мы обычно ожидаем, что ответы будут направлены непосредственно на заданный вопрос. Кстати, да, я знаю, что вы в некоторой степени решаете вопрос, но ваш «ответ» кажется наиболее говорящим: «Делайте то, что сказал EEAA», но имейте в виду эту странную причину.
Зоредаче
@Zoredache спасибо, что нашли время. Разве шаги 1 и 2 не дают четких указаний для «предпочтительного метода предоставления sudo»? Что спрашивает ОП?
Flak DiNenno
1

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

Конфигурация LDAP - это проверенный способ убедиться, что несколько компьютеров имеют одинаковую sudoконфигурацию, и представляет собой удобную унифицированную среду (с централизованным управлением важным механизмом авторизации). В качестве бонуса, если вы уже используете LDAP (или AD) для аутентификации / авторизации в своей среде, вы можете воспользоваться существующей инфраструктурой (и если вы этого не сделаете, вы должны серьезно рассмотреть ее - централизация имеет много преимуществ).

Все, что люди уже сказали в других ответах о создании авторизованных групп, остается в силе - это проще, когда вы расширяете масштаб, чтобы предоставить привилегии группе и управлять членством в группе, чем заниматься управлением правами для отдельных пользователей.

voretaq7
источник