1. В одній з віртуальних консолей або Х-терміналів (xterm, konsole і т.д) залогінитися рутом, а після виконання потрібних команд вийти.
2. Використовуючи команду su, тимчасово стати рутом на одній з консолей, в яких ви вже увійшли як звичайний користувач, після виконання потрібних команд вийти.
3. Використовуючи команду sudo, просто виконати потрібну команду.
У цих способів є свої плюси і мінуси.
Для 1-го способу потрібна вільна віртуальна консоль або ще один Х-термінал, тоді як 2-й і 3-й способи тимчасово використовують наявну.
1-й і 2-й способи запускають нову командну оболонку, що дозволяє виконати кілька команд, але для виконання всього однієї команди (напрмер, редагування файлу конфігурації або виконання make install) набагато зручніше 3-й спосіб, коли команда вводиться відразу, а після її виконання не треба робити вихід з оболонки.
А головне достоїнство 3-го способу - його дуже висока гнучкість і зручні налаштування. Правда, відразу після установки системи без настройки команда sudo користувачеві недоступна.
Команда su запускає в поточній консолі командну оболонку c правами іншого користувача, за замовчуванням - рута. При цьому необхідно ввести пароль цього користувача. Запуск su повинен обов'язково проводитися з дефісом як параметр:
При цьому оновлюються змінні оточення $ HOME і $ PATH, тобто домашнім каталогом стає / root, а в $ PATH додаються / sbin і / usr / sbin. При запуску su без дефіса $ HOME залишається рівним домашнього каталогу користувача, який запускав цю команду, і в результаті роботи програм, запущених з-під su, туди можуть бути записані файли (наприклад, конфігурації цих програм) з правами рута, що може привести до помилок і дивацтв в подальшій роботі.
Щоб повернутися в оболонку звичайного користувача, потрібно дати команду exit, logout або натиснути Ctrl-D.
Команда sudo дозволяє запустити одиночну команду з правами іншого користувача (за умовчанням - рута), при цьому вводиться пароль (якщо не обрано безпарольний запуск) користувача, який запускає sudo (а не того, від чийого імені запускається команда, на відміну від su). За замовчуванням ніхто не має права запускати що-небудь. Тому для початку користування sudo необхідно її налаштувати. Налаштування зберігаються в файлі / etc / sudoers. Настійно рекомендується редагувати цей файл командою visudo (ця команда перевіряє синтаксис файлу перед його збереженням). Про гнучких налаштуваннях sudo можна почитати в man sudoers, але ми розглянемо кілька найбільш простих і цікавих прикладів.
ALL ALL = (ALL) ALL
Найпростіший спосіб настройки sudo, але не найвдаліший з точки зору безпеки. Ми дозволяємо всім користувачам запуск будь-якої команди від будь-якого імені. Розглянемо, як можна обмежити цю свободу.
1-е поле в рядку - це список користувачів і / або груп, до яких застосовується ця рядок. Може бути ALL (все), ім'я користувача,% імя_группи або # чісловой_ідентіфікатор_пользователя.
% Wheel ALL = (ALL) ALL
Ми дозволяємо всім членам групи wheel (треба включити туди себе) запуск будь-якої команди від будь-якого імені. Так правильніше, при цьому в групу% wheel включаються тільки дозволені користувачі.
2-е поле - ім'я машини, з якої можна виконувати команди. Має значення тільки при використанні мережного входу в систему.
3-е поле (в дужках) - список користувачів, від імені яких можна виконувати команду. Оскільки зазвичай sudo використовують для запуску програм від імені рута, це поле використовується не дуже часто.
4-е поле - команда, яку дозволено виконувати. Тут, як і в інших полях, можна вказувати список команд через кому.
Будь-який користувач може командою sudo -l дізнатися, які команди йому дозволено виконувати.
При запуску sudo запитується пароль (користувача, що запустив команду). Протягом 5 хвилин (цей інтервал можна змінити) після останнього запуску sudo його можна запускати ще раз вже без пароля. Можна в / etc / sudoers в потрібних рядках поставити після знака = тег NOPASSWD. тоді команди, зазначені в цьому рядку, можуть виконуватися без пароля.
ALL ALL = NOPASSWD: (ALL) / sbin / shutdown, / sbin / reboot
Дозволяє вимикати і перезавантажувати комп'ютер будь-якому користувачеві без вказівки пароля, командами sudo / sbin / shutdown і sudo / sbin / reboot відповідно (інші способи виконання цього будуть розглянуті в наступній статті).
За замовчуванням, всі успішні і неуспішні спроби виконання команди sudo (включаючи ім'я користувача і повну команду) реєструються в системному журналі і можуть бути надіслані поштою системному адміністратору.
При налаштуванні su і sudo в плані обмеження доступу користувачам треба бути обережним, тому що неправильно налаштоване sudo може дозволити користувачеві запустити з правами рута будь-яку команду. Зокрема, навіть при відсутності у користувача прав на su можливі такі команди, як sudo bash, sudo su, sudo mc або запуск будь-якої програми, що дозволяє тимчасовий вихід в оболонку (наприклад, vi і команда: sh).
Повернутися до списку