Чому пароль '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система вимагає ввести пароль користувача, до якого ви переходите . (Я знаю, що це зараз дуже давнє запитання, але я хотів додати уточнення на користь майбутніх глядачів.)
anonymousmoose

@anonymoose, це питання стосувалося особистої машини ОП. Як правило, коли ви встановлюєте Linux на власній машині, ви знаєте, чи дали ви root виконувати інший пароль від свого звичайного користувача. Питання вказує на те, що ОП з подивом виявив, що корінь має інший пароль.
fixer1234

1
@ fixer1234 ОП може не встановити корінний пароль для початку. Інсталятор Ubuntu не запитує корінний пароль , і я впевнений, що деякі інші дистрибутивні програми це не роблять.
анонімний

Відповіді:


17

Всупереч тому, що їх найчастіше використання спонукало б вас задуматися, suі sudoвони не призначені лише для входу в систему (або виконання дій) як root.

suдозволяє перемикати свою особу з особою когось іншого. З цієї причини під час введення suсистемі потрібно перевірити наявність у вас облікових даних для цільового користувача, якого ви намагаєтеся змінити.

sudoтрохи інакше. Використання sudoдозволяє виконувати певні (або всі, залежно від конфігурації) команди як хтось інший. Ваша власна ідентичність використовується для визначення того, які типи команд sudoбудуть виконуватись під чужою ідентичністю: якщо ви є надійним користувачем (у тому сенсі, що sysadmin вам довіряє), вам буде дозволено більше вільно, ніж, скажімо, стажер. Ось чому sudoпотрібно перевірити власну особу, а не особистість цільового користувача.

Іншими словами, намагатися suкогось, кого ви не є, це як спроба стягнути плату за покупку з викраденої кредитної картки під час використання sudo, як продаж автомобіля вашого друга законним дорученням.

Щодо того, що ви намагалися зробити, просто sudo su root, або навіть простіше, sudo suвведіть звичайний пароль користувача. Це приблизно означатиме заміну облікових даних кредитної картки вашого друга на власні, використовуючи законний проксі, який вони вам дали :). Звичайно, передбачається, що sudoконфігурація дозволяє працювати suз ескалаційними привілеями.

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


Для домашнього користувача, чи рекомендуєте ви встановити пароль root, крім того, щоб користувач мав привілеї (як у sudo)?
Рой

3

sudoвикористовується для тимчасової ескалації дозволів користувача до рівня root, тоді su rootяк використовується для створення нової оболонки з root як користувач;


2

Це налаштовується *, але, за замовчуванням, "sudo" запитує у вас пароль. Це просто намагається переконатися, що це ти, а не хтось, хто використовує клавіатуру, коли ти пив каву.

Навпаки, "su root" запитує вас пароль root.


* Якщо targetpw в / etc / sudoers невірно (за замовчуванням), "sudo" запитає вас про пароль. Якщо це правда, то "sudo" запитує вас пароль root або, якщо ви вказали іншого користувача за допомогою параметра "-u", пароль цього користувача.


1

На користь деяких новачків у цьому пошуку існує простий метод перейти в корінь до виходу:

     sudo -iE

Збереже вас інтерактивними та збереже ваше оточення, але зараз, як корінь.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.