Файл sudo
служби існує, щоб переконатися, що привілеї, за якими не вимагається, не залишаються після перезавантаження. В основному це гарантує, що після перезавантаження звичайні користувачі, які закликали дозволу root, залишаться звичайними користувачами.
Детальне пояснення щодо судо
Все пояснення нижче - отримати всю інформацію для всіх, хто читає це запитання, а потім пояснити, що там працює файл sudo у службовій папці.
При встановленні Ubuntu або будь-якого іншого дистрибутива, який використовує sudo
різницю між тим, щоб бути root і користувачем, який використовуєsudo
для отримання привілеїв "root like" (Адміністративні або суперкористувачі суперкористувача):
Як корінь
- Вам не запитують пароль для кожної або всіх команд, які виконуються на сеансі
- Не всі команди, які ви виконуєте, будуть зафіксовані за замовчуванням
- Система передбачає, що ви знаєте, що ви робите (Причина, чому вона не запитує пароль щоразу, коли виконується команда)
- Немає жодної другої можливості або в останню хвилину, якщо ви помилитесь
Як судо
- Вам буде запропоновано пароль для кожної або всіх команд, які ви виконуєте на сеансі. Наприклад, якщо ви відкриєте термінал і виконайте команду, яка потребує адміністративних привілеїв, він запитає пароль один раз для цього сеансу, поки ви не закриєте термінал або вихід. Це залежить від того, яку команду ви використовуєте та де. Це може запитати один або кілька разів.
- Усі команди, які ви виконуєте, будуть записані в журнал, оскільки ви насправді просите дозволу на використання суперпривілейованої команди.
- Система передбачає, що ви тимчасово запитуєте дозволу, і адміністративне право буде надано тимчасово (Доки ви не вийдете з системи, закрийте термінал тощо).
- У вас є можливість в останню хвилину виправити будь-яку помилку. Це робиться в момент, коли вам запитають пароль.
Чому було створено SUDO
Створення SUDO було здійснено тому, що раніше, використовуючи корінь, створювалося більше проблем, ніж рішень. Користувачі мали всі права, що означало, що якщо вони здійснили весняне очищення і буквально видалили /usr
, /lib
і/bin
папки (бо вони думали, що вони їм не потрібні) .. здогадайтесь, що буде. У минулому багато проблем було через те, що користувачі не знали потужності, яку вони мали під час використання root. В основному вони мали root, але не розуміли Linux, ієрархію файлової системи, які файли були важливими тощо. (Щось на кшталт того, як Ferrari і не знають, як їхати ... по шосе!)
SUDO також використовується програмами графічного інтерфейсу (Like Manager Manager), коли їм потрібні тимчасові адміністративні привілеї, щоб зробити щось. Їм потрібна лише певна кількість команд (як правило, 1), а потім вони повертаються до привілею рівня користувача. Це уникнути постійних привілеїв root та уникати помилок, якщо користувач вирішить видалити якусь важливу частину системи.
Крім того, це забезпечує кращу безпеку, оскільки користувач root не працює за умовчанням.
Нарешті, якщо у вас є настільний ПК або сервер, ви дійсно не хочете, щоб усі були root, а також не мали всіх привілеїв адміністратора. Дуже погана ідея, якщо ваша маленька сестра або маленькі брати почнуть замислюватися про те, що буде, якщо /boot
зустріти DELключ. Ось тут sudo
і знижується ймовірність того, що трапиться щось погане.
Що означає надання обмеженим привілеям супер користувача для конкретних користувачів ?
Користувач sudo або sudoers насправді мають файл конфігурації, який розповідає про те, наскільки обмежена або відкрита команда sudo для конкретного користувача. У файлі /etc/sudoers
є вся інформація, щоб обмежити або надати доступ користувачеві sudo. За замовчуванням він має доступ до всього, але ви можете налаштувати або обмежити це за своїм бажанням.
Інформація про те, як використовувати тип файлу sudoers man sudoers
в терміналі. Наприклад, звичайний формат:
ПОТРІБНИЙ ДІМ = КОМАНТИ
Наприклад cyrex server1 = /bin/ls
, надасть користувачеві cyrex на хост-сервері1 доступ для запуску команди ls.
Наприклад cyrex server1 (root) = /bin/ls
, надасть користувачеві cyrex на хост-сервері1 доступ для запуску команди ls як root.
Наприклад cyrex ALL = /bin/ls
, надасть користувачеві cyrex у всіх хостах доступ для запуску команди ls.
Наприклад cyrex ALL = ALL
, дасть користувачеві cyrex у всіх хостах доступ для запуску всіх команд.
Наприклад luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
, дозволить мені запускати sudo для команди kill
і killall
команди як root, не запитуючи пароль.