Що таке sudo в Linux?
На початкових етапах розвитку Linux все було значно складніше. Дистрибутиви були менш зрілими, і для виконання багатьох завдань був потрібен спеціальний системний обліковий запис — root. Він надавав повний контроль над операційною системою.
Іноді можна було розіграти недосвідчених користувачів, попросивши їх увійти в систему як root за допомогою команди su, а потім запустити команду rm – rf /.
Команда rm призначена для видалення файлів і тек, а опції -r (рекурсивна) та -f (примусова) призводять до видалення всього в кореневому каталозі (/), що робить систему непридатною для використання.
Усі команди, які вимагали адміністративних привілеїв, виконувалися від імені root. Для цього користувач мав перемикнутися на root за допомогою команди su, або увійти в систему як root.
Обидва ці підходи виявилися небезпечними, оскільки надавали повний контроль над системою. Якщо хакер отримував доступ до root, він міг завдати значної шкоди.
Для розв’язання цих проблем було розроблено sudo.
Sudo розшифровується як «superuser do» і дозволяє звичайним користувачам (які входять до групи адміністраторів) виконувати команди з адміністративними правами. Це рішення мало дві основні переваги:
- обліковий запис root можна було деактивувати, знижуючи ризик його зловживання
- лише користувачі з групи адміністраторів могли виконувати важливі завдання.
Sudo також спростив процес додавання та видалення користувачів з групи адміністраторів. Це дозволило легше контролювати доступ до привілеїв. Ця зміна значно підвищила безпеку Linux і зробила роботу користувачів більш зручною. З появою sudo користувачам більше не потрібно було постійно входити в обліковий запис root для виконання адміністративних завдань, таких як встановлення програмного забезпечення. Замість цього вони могли використовувати sudo, щоб тимчасово отримати необхідні права адміністратора.
З sudo можна контролювати, хто і які дії може виконувати в системі. Коли користувач намагається запустити команду, яка потребує адміністративних привілеїв, він вводить свій пароль, і якщо все зроблено правильно, команда виконується.
Наприклад, замість того, щоб спочатку входити в систему як root за допомогою su, а потім виконувати команди update та upgrade в Ubuntu, користувач може просто використати команду
sudo apt-get update && sudo apt-get upgrade -y
Використовуючи apt-get через sudo, користувач отримує тимчасові адміністративні права і може успішно виконати ці команди. Це не лише підвищує безпеку системи, але й робить адміністрування більш зручним і керованим. А якщо тобі цікаво дізнатись більше про команду, прочитайте нашу статтю «5 причин використовувати sudo».
Як бути з користувачами, які не входять до групи адміністраторів?
Щоб надати права користувачам, які не входять до групи адміністраторів, потрібно додати їх до відповідної групи адміністраторів. У дистрибутивах на основі Ubuntu це група sudo, тоді як у дистрибутивах на основі Red Hat, таких як Fedora, ця група називається wheel.
Якщо користувач, який не є членом цих груп, але спробує виконати команду з використанням sudo, він отримає повідомлення про помилку:
user is not in the sudoers file. This incident will be reported
Щоб вирішите це, користувача потрібно додати до відповідної групи адміністраторів. Для цього в дистрибутивах на основі Ubuntu використовується команда:
sudo usermod -aG sudo USER
де USER — це ім’я користувача, якому потрібно надати права.
У дистрибутивах на основі Red Hat команда буде такою:
sudo usermod -aG wheel USER
Після виконання цієї команди користувачеві необхідно або вийти з системи та увійти знову, або оновити групові налаштування за допомогою команди:
newgrp
Після додавання до групи адміністраторів, користувач зможе використовувати команду sudo для виконання задач, які потребують привілеїв адміністратора. Це підвищує безпеку і зручність системи, оскільки дозволяє уникнути використання облікового запису root, який може стати серйозною вразливістю з погляду безпеки, і забезпечує ефективне управління доступом користувачів до адміністративних завдань.
Щоб навчитись працювати з командами Linux та рівнями доступу, запрошуємо до нас на 2-тижневий курс Linux для новачків.