Найбільша відмінність полягає в тому, що sudo
вам не потрібно пароля root для запуску команди як root, як це було б su
. Вам потрібен кореневий пароль, щоб додати когось у sudoers
файл, але після цього людина може запустити всі або деякі (якщо ви обмежили його) як корінь, не вимагаючи додаткових паролів.
Інша відмінність полягає в тому, як ви зазначали, sudo
дозволяє набагато тонше контролювати, які саме команди можна виконувати.
Докладніше про формат sudoers
запуску файлу man sudoers
. Ви знайдете приклади, що дозволяють виконувати лише певні команди як root. Основна структура кожного рядка:
user_list host_list = cmd_list
cmd_list може містити деталі, до якого користувача реальний користувач може перейти. Наприклад, ви можете дозволити веб-майстру переключитися на wwwroot, щоб перезапустити apache, але не root. Він також може включати інші параметри, наприклад, чи потрібний пароль користувача перед перемиканням (це за замовчуванням).
Приклад рядка може бути:
joe ALL=(ALL) ALL
що означає: нехай Джо виконує будь-яку команду на будь-якому хості як будь-який користувач. Більш чітка лінія може бути:
joe ALL=(operator) /usr/local/ops/
що означає: нехай Джо виконує будь-яку команду в каталозі / usr / local / ops як "оператор" користувача.
Прикладів є в кінці сторінки про чоловіків-судорів.
Ви повинні редагувати /etc/sudoers
за допомогою команди visudo
. Це перевіряє, чи файл легальний і допомагає запобігти випадковому його злому.
sudo
є дивовижним винаходом