Домашня » як » У чому різниця між Sudo і Su в Linux?

    У чому різниця між Sudo і Su в Linux?

    Якщо ви користувач Linux, ви, напевно, бачили посилання на sudo і su. Статті про How-To Geek та в інших місцях вказують користувачам Ubuntu використання sudo та інших дистрибутивів Linux для використання su, але в чому різниця?

    Sudo і su є двома різними способами отримання привілеїв root. Кожен функціонує по-різному, і різні дистрибутиви Linux за замовчуванням використовують різні конфігурації.

    Кореневий користувач

    І su, і sudo використовуються для запуску команд з правами root. Користувач root в основному еквівалентний користувачеві адміністратора в Windows - користувач root має максимальні дозволи і може що-небудь зробити для системи. Звичайні користувачі на Linux працюють з обмеженими правами - наприклад, вони не можуть встановлювати програмне забезпечення або записувати в системні каталоги.

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

    Су проти Судо

    Команда su перемикається на суперкористувача - або користувача root - коли ви виконуєте його без додаткових параметрів. Вам потрібно буде ввести пароль кореневого облікового запису. Це не все, що виконує команда su, - ви можете використовувати її для перемикання на будь-який обліковий запис користувача. Якщо виконати su bob Вам буде запропоновано ввести пароль Bob, а оболонка перейде на обліковий запис користувача Bob.

    Після виконання команд у кореневій оболонці слід ввести Вхід залишити кореневу оболонку і повернутися до режиму обмежених привілеїв.

    Sudo запускає одну команду з привілеями root. Коли ви виконуєте Команда sudo, перед запуском система запросить пароль поточного облікового запису користувача команду як кореневий користувач. За промовчанням Ubuntu запам'ятовує пароль протягом п'ятнадцяти хвилин і не запитуватиме пароль ще до п'ятнадцяти хвилин.

    Це ключова відмінність між su та sudo. Su переключає вас до облікового запису користувача root і вимагає пароль кореневого облікового запису. Sudo запускає одну команду з привілеями root - вона не переходить на користувача root або не вимагає окремого пароля користувача root.

    Ubuntu проти інших дистрибутивів Linux

    Команда su традиційний спосіб отримання кореневих дозволів на Linux. Команда sudo існувала довгий час, але Ubuntu був першим популярним дистрибутивом Linux, який за замовчуванням перейшов до sudo-only. Коли ви встановлюєте Ubuntu, створюється стандартний кореневий обліковий запис, але йому не присвоюється пароль. Ви не можете увійти в систему як кореневий, доки не призначите пароль для кореневого облікового запису.

    Є кілька переваг використання sudo замість su за замовчуванням. Користувачам Ubuntu потрібно лише надати та запам'ятати єдиний пароль, тоді як Fedora та інші дистрибутиви вимагають створення окремих паролів кореневих і облікових записів користувачів під час встановлення.

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

    Дистрибутиви на основі Ubuntu, включаючи Linux Mint, також використовують sudo замість su за замовчуванням.

    Кілька трюків

    Linux є гнучким, тому не потрібно багато працювати, щоб зробити su працювати аналогічно sudo - або навпаки.

    Щоб запустити одну команду як кореневого користувача з su, виконайте таку команду:

    команда su -c '

    Це подібно до запуску команди з sudo, але вам потрібен пароль кореневого облікового запису, а не пароль поточного облікового запису користувача.

    Щоб отримати повну інтерактивну кореневу оболонку за допомогою sudo, запустіть sudo -i.

    Ви повинні надати пароль поточного облікового запису користувача замість пароля кореневого облікового запису.

    Увімкнення кореневого користувача в Ubuntu

    Щоб увімкнути обліковий запис кореневого користувача на Ubuntu, використовуйте наступну команду для встановлення пароля. Майте на увазі, що Ubuntu рекомендує проти цього.

    sudo passwd root

    Sudo запросить пароль вашого поточного облікового запису, перш ніж ви зможете встановити новий пароль. Використовуйте свій новий пароль для входу в систему як кореневої з термінала входу в термінал або з командою su. Ви ніколи не повинні запускати повне графічне середовище як користувача root - це дуже погана практика безпеки, і багато програм відмовлятимуться працювати.

    Додавання користувачів до файлу Sudoers

    Лише облікові записи типу адміністратора в Ubuntu можуть запускати команди з sudo. Тип облікового запису користувача можна змінити з вікна налаштування облікових записів користувачів.

    Ubuntu автоматично визначає обліковий запис користувача, створений під час встановлення, як обліковий запис адміністратора.

    Якщо ви використовуєте інший дистрибутив Linux, ви можете надати користувачеві дозвіл на використання sudo, запустивши visudo команда з привілеями root (так запустити su спочатку або використовувати su -c).

    Додайте до файлу наступний рядок, замінивши його користувача з назвою облікового запису користувача:

    користувач ALL = (ALL: ALL) ALL

    Натисніть Ctrl-X і потім Y , щоб зберегти файл. Ви також можете додати користувача до групи, вказаної у файлі. Користувачі в групах, вказаних у файлі, автоматично матимуть привілеї sudo.

    Графічні версії Su

    Linux також підтримує графічні версії su, які запитують ваш пароль у графічному середовищі. Наприклад, ви можете запустити таку команду, щоб отримати графічний запит на пароль і запустити браузер файлів Nautilus з правами кореня. Натисніть Alt-F2 щоб запустити команду з діалогового діалогового вікна виконання без запуску терміналу.

    gksu nautilus

    Команда gksu також має декілька інших хитрощів - вона зберігає поточні налаштування робочого столу, тому графічні програми не будуть виглядати недоречними, коли ви запускаєте їх як іншого користувача. Такі програми, як gksu, є кращим способом запуску графічних додатків з привілеями root.

    Gksu використовує або su або sudo-backend, залежно від дистрибутиву Linux, який ви використовуєте.


    Тепер ви повинні бути готові зустріти і su, і sudo! Ви зустрінетесь як з різними дистрибутивами Linux.