Чем отличается root от sudo?


14

Пользователь root может иметь все привилегии. Но обычный пользователь может получить доступ как root с помощью команды su или sudo и своего собственного пароля.

Так в чем же разница?

Ответы:


7

Команде su(и sudo) традиционно требуется пароль root . Однако вы можете настроить sudoтак, чтобы обычные пользователи могли получить привилегии root с помощью своего собственного пароля, изменив /etc/sudoers(как root, желательно с помощью visudo).

Современные дистрибутивы Linux предварительно настраивают первого пользователя, который сможет использовать sudo с собственным паролем. Это предотвращает случайное неправильное конфигурирование системы пользователем и позволяет ему получить полный контроль без необходимости использования отдельного пароля root.


2
Вы должны использовать «visudo» вместо редактирования вручную / etc / sudoers - синтаксис будет проверен перед сохранением, что может избавить вас от некоторых проблем.
Николас

@Nicolas Обновлен, чтобы включить это. Но я хотел отметить, что файл автоматически записывается современными дистрибутивами.
Phihag

3

Обычный пользователь может получить root-доступ с помощью sudo только в том случае, если он находится в файле sudoers (это означает, что ему достаточно доверия для получения прав администратора по требованию). В производственной среде почти никто не должен страдать.


3

Команда suэто временно изменить личность для любого пользователя в системе и выполнять много программ с его / ее / ее разрешениями. Это не должно быть корнем. Если выполняемый пользователь suне является пользователем root, он должен ввести пароль пользователя, которому он хочет получить идентификацию.

Команда sudoдолжна выполнить одну команду с разрешениями любого пользователя. Это не должно быть корнем тоже. Команда очень настраиваема и обеспечивает некоторый точный контроль доступа. Ввод собственного пароля не является обязательным и настраивается. Некоторый дистрибутив позволяет первому пользователю системы выполнить со sudoвсем.


2

Чтобы добавить к ответам выше,

su user1с паролем пользователя будет переключать ваши учетные данные на user1, пока вы не введете команду exit, просто suпримите root по умолчанию

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


1

Не все обычные пользователи могут использовать sudo, они должны быть в файле sudoers, и вы можете контролировать, какие команды или типы команд может выполнять пользователь. Кроме того, только определенные пользователи могут использовать su для переключения на пользователя root. Обычно вы имеете права sudo только для ограниченного набора команд и полные права su в течение ограниченного периода времени.


3
почти наверняка все пользователи могут использовать su, им просто потребуется пароль пользователя, на которого они переключаются.
Grady Player

1
Традиционно, BSD требуют, чтобы один входил в группу wheel, чтобы позволить su стать root. Это также может быть настроено в Linux, но не является стандартным.
Jaap Eldering

-2

Только пользователи с привилегиями суперпользователя могут sudo или su, обычные пользователи не могут. Это настраивается в / etc / sudoers, который всегда должен редактироваться с помощью visudo.

Преимущества этой системы:

  1. Привилегированный пользователь может легко запускать команды от имени root только при необходимости,
  2. затрудняет угадывание имени пользователя root (например, если простой ssh-бот попытается войти в систему, rootэто будет первое имя для входа в систему).
  3. Несколько пользователей в общей системе могут иметь права доступа root без необходимости обмена паролями.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.