5

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

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

Спасибо

3 ответа3

5

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

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

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

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

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

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

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

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

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

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

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

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

RWX ------

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

3

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

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .