Почему пароль 'sudo' отличается от пароля 'su root'

11

На моем персональном компьютере я часто печатаю sudoперед определенными командами для выполнения административных задач. Я надеялся избежать этого в течение дня, набирая su rootи предоставляя тот же пароль, который я обычно использую sudo. Однако два пароля не совпадают (я не знаю, как войти su root). Выполнение команды sudoотличается от входа в систему su rootи выполнения одной и той же команды?

Я думаю sudoи su rootто же самое, потому что, когда я печатаю sudo whoami, я получаю root, в отличие от того, whoamiгде я получаю свое имя пользователя.

Тревор Хикки
источник
Я наткнулся на эту старую ветку, потому что она была связана с вопросом, который я задал. Ответы очень информативны, но оставляют вопрос. На личном компьютере (один пользователь), как получить другой пароль для root в зависимости от того, используете ли вы sudo или su root? Нет ли единственного пароля root, определенного при установке Linux?
fixer1234
@ fixer1234 Как объясняется в ответе John1024 , когда вы используете sudoсистему, система запрашивает ваш пароль для подтверждения вашей личности, а затем проверяет /etc/sudoers, разрешено ли вам запускать sudo. При использовании suсистема требует от вас ввести пароль пользователя, на которого вы переключаетесь . (Я знаю, что это очень старый вопрос, но я хотел бы добавить пояснения для будущих зрителей.)
anonymoose
@anonymoose, этот вопрос был о персональной машине ОП. Как правило, когда вы устанавливаете Linux на свой компьютер, вы будете знать, если вы задали пароль root от вашего обычного пользователя. Вопрос указывает на то, что ОП с удивлением обнаружил, что у root был другой пароль.
fixer1234
1
@ fixer1234 OP, возможно, не установил пароль root для начала. Установщик Ubuntu не запрашивает пароль root , и я уверен, что некоторые другие дистрибутивы этого не делают.
anonymoose

Ответы:

17

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

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

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

Другими словами, пытаться связаться с suкем-то, кем вы не являетесь, - это все равно, что пытаться списать свои покупки с украденной кредитной карты во время использования, sudoэто все равно, что продать автомобиль вашего друга по доверенности.

Что касается того, что вы пытались сделать, просто sudo su rootили даже проще sudo suи введите свой обычный пароль пользователя. Это примерно равносильно замене учетных данных кредитной карты вашего друга на ваши собственные с использованием законного прокси, который они вам дали :). Конечно, предполагается, что sudoконфигурация позволяет вам работать suс повышенными привилегиями.

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

Джозеф Р.
источник
Для домашнего пользователя, вы бы порекомендовали установить пароль root в дополнение к наличию привилегированного пользователя (как в sudo)?
Рой
3

sudoиспользуется для временного повышения прав пользователя до уровня root, тогда su rootкак используется для создания новой оболочки с пользователем root;

Дейв
источник
2

Это настраивается *, но по умолчанию sudo запрашивает ваш пароль. Он просто пытается убедиться, что это вы, а не кто-то, пользующийся вашей клавиатурой, пока вы пили кофе.

В отличие от этого, «su root» запрашивает пароль пользователя root.


* Если targetpw в / etc / sudoers имеет значение false (по умолчанию), «sudo» запрашивает ваш пароль. Если это правда, то «sudo» запрашивает пароль root или, если вы указали другого пользователя с параметром «-u», пароль этого пользователя.

John1024
источник
1

Для удобства некоторых новичков в этом поиске есть простой способ войти в root до выхода:

     sudo -iE

Будет держать вас интерактивным и поддерживать вашу среду, но теперь, как root.

ТСМ
источник