В чем разница между добавлением пользователя в группу «sudoers» и «root»?

5

Я провел некоторые исследования, и чтобы пользователь мог использовать команду sudo, вы должны добавить их в группу «sudoers». Это дает им привилегии root, если они вводят пароль root. Но я также сталкивался с примерами того, как пользователи добавляли пользователя в группу «root» вместо группы «sudoers». Мой вопрос: существуют ли разные привилегии между двумя группами, и если да, то каковы они и каковы преимущества обеих техник?

Я использую сервер Debian Linux.

Спасибо

Michael
источник
3
Один дает пользователю возможность повышать свое разрешение, другой - дает пользователю всегда максимально возможное разрешение.
Ramhound

Ответы:

3

Корневая группа, как указано в / etc / group, относится к разрешениям unix. Каждый файл имеет права пользователя, группы и «другие». Если файл настроен так, что пользователи в корне группы могут его читать, вы можете предоставить пользователю возможность читать этот файл, поместив пользователя в корень группы. Конечно, тогда этот пользователь может читать каждый файл, в котором установлен бит чтения для корня группы.

Файл sudoers о выполнении команд с эффективным идентификатором других пользователей. Вы имеете более детальный контроль над тем, какие команды может выполнять каждый пользователь, и как и кем. Поэтому, если вы хотите, чтобы пользователь мог выполнять только одну конкретную команду от имени пользователя root, вы должны указать это в файле sudoers.

robbie.huffman
источник
5

Хотя в вопросе упоминается «Сервер Debian Linux», в настоящее время он помечен как Debian, так и Ubuntu. Поскольку информация о нескольких операционных системах, по-видимому, представляет определенный интерес, я собираюсь просто полностью игнорировать ссылки на конкретные операционные системы и просто описывать наиболее распространенные стандарты.

Группы перечислены в / etc / group и часто есть группа с именем «root». В этом файле перечислены имена групп и соответствующие им числовые значения «Идентификатор группы» («GID»).

Любой из группы с именем «root» будет иметь возможность читать, записывать или выполнять файлы, для которых «владелец группы» имеет тот же «идентификатор группы» («GID»), что и группа с именем root. Таким образом, если файл принадлежит «bin: root» и имеет разрешения «rwxrwx ---», то пользователь в группе «root» сможет запустить файл из-за среднего набора разрешений.

Напротив, стандарт, установленный программным обеспечением "sudo", основан на конфигурации, хранящейся в файле / etc / sudoers. В файле / etc / sudoers имена групп в стиле Unix отображаются после знаков процента, как обсуждалось Страница руководства sudoers (в формате HTML): раздел о формате файла "sudoers" , Таким образом, ссылка на% sudoers в файле / etc / sudoers относится к группе с именем "sudoers", которая находится в файле / etc / groups.

Файл / etc / sudoers по умолчанию не содержит ссылку на группу с именем "sudoers". Обратите внимание, что я имею в виду настоящий файл по умолчанию / etc / sudoers, который вы можете просмотреть, увидев хранилище sudo щелкнув «Обзор» в левом фрейме, затем «Примеры», затем «sudoers».

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

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

Когда человек повышает свои привилегии, ему может потребоваться ввести приемлемую аутентификацию (пароль) или нет. Даже если они имеют, после аутентификации у них может быть «токен» в течение некоторого периода времени, который позволит им снова подняться без необходимости повторной аутентификации (пока не истечет этот период времени). Этот период времени составляет 5 минут, если в / etc / sudoers не указано иное, используя опцию «timeout».

Напротив, человеку из «корневой» группы не нужно было бы вводить пароль для доступа к файлу, который принадлежит «корневой» группе.

Обратите внимание, что группа "sudoers" может быть предпочтительной. Поднявшись, человек может получить полный доступ суперпользователя. (Это типично. Файл / etc / sudoers позволяет человеку переключаться на другого пользователя или повышать его, но с ограничениями на то, какая команда запускается изначально. Обычно, при стандартных / простых конфигурациях человек, повышающий уровень, просто становится полным повышение прав.) При аутентификации как полный суперпользователь пользователь, как правило, не подчиняется разрешениям, которые основаны на типичных владениях файловой системы Unix (настройках «владелец» и «владелец группы»). Пользователь по-прежнему может быть подвержен другим ограничениям на основе разрешений, таким как разрешения, устанавливаемые способом монтирования раздела (по этой причине программное обеспечение не позволяет пользователю записывать на компакт-диск только для чтения), или другие причины, по которым файл может не предоставлять разрешения (например, если файл заблокирован, что указывает на то, что файл уже используется). Если файл принадлежит:

корень: корень

и имеет разрешения:

RWX ------

Тогда пользователь не получает права доступа к файлу только потому, что пользователь находится в группе с именем «root». Таким образом, «корневая» группа может быть более удобной (пароли не требуются), хотя она может быть более ограниченной. (Или группа в / etc / sudoers может быть более ограниченной, в зависимости от того, как настроен / etc / sudoers.)

TOOGAM
источник
1

Прежде всего, root пользователь является первым пользователем в sudoers группа, сразу после того, как Ubuntu установлен на машине. Во-вторых, root и суперпользователь (например, Майкл) оба имеют одинаковые user id ( UID ) 0, который является идентификатором суперпользователей. У них одинаковые привилегии. В-третьих, единственное отличие состоит в том, что super user должен набрать sudo Команда перед любой командой, которая требует специальных привилегий, но root пользователь не должен. Они разные только по имени и узнаваемы именно.

Capt
источник