Одним з загальноприйнятих правил роботи з Linux є те що щоденні робочі функції ніколи не виконуються від імені адміністратора (root). Деякі дистрибутиви Linux навіть не дозволяють робити початкове логування в системі як root. Натомість від імені адміністратора виконуються тількі задачі які вимагають адміністративних повноважень, та ніякі інші.
Як бути, якщо підчас нормальної роботи з системою виникла потреба виконати адміністративну операцію ? Для цього існує декілька способів.
Можна ввести у терміналі команду su. Система запросить пароль адміністратора і після правильного вводу продовжить роботу вже з повноваженнями адміністратора.
Інший, менш радикальний спосіб полягає у використанні команди sudo. Ця команда використовується, якщо треба дозволити окремим користувачам виконувати визначені адміністративні функції (не передаваючи однак їм усіх повноважень та не розкриваючи адміністративного пароля).
Для цього треба занести відповідну інформацію у файл /etc/sudoers. Це можна зробити тільки спеціальним редактором visudo
Приклад файла /etc/sudoers подано нижче
root ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
У файлі /etc/sudoers можна визначити псевдоніми (aliases) для комп”ютерів, користувачів, команд та задати конкретний список команд і на якій машині дозволено виконувати конкретному користувачу. Як правило при цьому запитують пароль. Відминити запит пароля можна опцією NOPASSWD, як у нижчннаведеному прикладі.
ray rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm
Користувач з іменем ray на машині rushmore зможе запускати програму /bin/kill без пароля /bin/ls, usr/bin/lprm - з паролем.