<Попередній | зміст | Наступна>
sudo – Виконати команду як інший користувач
Команда Суду команда схожа su багатьма способами, але має деякі важливі додаткові можливості. Адміністратор може налаштувати Суду дозволити звичайному користувачеві виконувати команди як інший користувач (зазвичай суперкористувач) дуже контрольованим способом. Зокрема, користувач може бути обмежений однією або кількома конкретними командами і ніякими іншими. Ще одна важлива відмінність полягає в тому, що використання Суду не вимагає доступу до пароля суперкористувача. Для автентифікації за допомогою Суду, користувач використовує власний пароль. Скажімо, наприклад, що Суду було налаштовано так, щоб ми могли запускати фіктивну програму резервного копіювання під назвою «backup_script», яка вимагає привілеїв суперкористувача. З Суду це буде зроблено так:
[me@linuxbox ~]$ sudo backup_script
пароль:
Початок резервного копіювання системи...
[me@linuxbox ~]$ sudo backup_script
пароль:
Початок резервного копіювання системи...
Після введення команди нам буде запропоновано ввести наш пароль (а не пароль суперкористувача), і після завершення аутентифікації виконується зазначена команда. Одна важлива відмінність між su та Суду в тому, що Суду не запускає нову оболонку і не завантажує середовище іншого користувача. Це означає, що команди не потрібно вводити в лапки інакше, ніж вони були б без використання Суду. Зауважте, що цю поведінку можна змінити, вказавши різні параметри. Див Суду man page для деталей.
Щоб побачити, які привілеї надаються Суду, використовуйте параметр «-l», щоб перерахувати їх:
[me@linuxbox ~]$ судо -л
Користувач me може виконувати такі команди на цьому хості: (ВСЕ) ВСЕ
[me@linuxbox ~]$ судо -л
Користувач me може виконувати такі команди на цьому хості: (ВСЕ) ВСЕ
Ubuntu і sudo
Однією з постійних проблем звичайних користувачів є те, як виконувати певні завдання, які вимагають привілеїв суперкористувача. Ці завдання включають встановлення та оновлення програмного забезпечення, редагування файлів конфігурації системи та доступ до пристроїв. У світі Windows це часто робиться шляхом надання користувачам адміністративних привілеїв. Це дозволяє користувачам виконувати ці завдання. Однак це також дозволяє програмам, які виконує користувач, мати ті самі можливості. У більшості випадків це бажано, але це також дозволяє шкідливих програм (шкідливе програмне забезпечення), наприклад віруси, щоб мати вільне панування на комп’ютері.
У світі Unix завжди існував більший поділ між звичайними користувачами та адміністраторами через багатокористувацьку спадщину Unix. Підхід, який використовується в Unix, полягає в тому, щоб надавати привілеї суперкористувача лише тоді, коли це необхідно. Для цього необхідно su та Суду команди зазвичай використовуються.
Ще кілька років тому більшість дистрибутивів Linux покладалися на нього su Для цієї мети. su не вимагала такої конфігурації Суду обов’язковий, а наявність облікового запису root є традиційним для Unix. Це створило проблему. Користувачі мали спокусу працювати як root без потреби. Фактично, деякі користувачі керували своїми системами виключно як користувач root, оскільки це позбавляє всіх цих дратівливих повідомлень про «відмову у дозволі». Таким чином ви зменшуєте безпеку системи Linux до системи Windows. Не дуже гарна ідея.
Коли була представлена Ubuntu, її творці пішли іншим шляхом. За замовчуванням Ubuntu вимикає вхід до кореневого облікового запису (не вдаючись встановити пароль для облікового запису), а замість цього використовує Суду надати привілеї суперкористувача. Початковому обліковому запису користувача надається повний доступ до привілеїв суперкористувача через Суду і може надавати подібні повноваження наступним обліковим записам користувачів.