Що робить служба судо?


17

Наскільки я знаю і здається, що інші люди мають таку ж думку sudo , це команда, яка виконує щось з адміністративними привілеями.

Однак коли я біжу, rcconfя бачу цей рядок:

[*] sudo    Provide limited super user privileges to specific users

Тож який сенс у цій службі? Або це навіть послуга?


Це те, що я знайшов під час пошуку google-> Sudo
adi

"Тут надходить sudo - він дозволяє авторизованим користувачам (як правило," Адміністративні "користувачі; для отримання додаткової інформації зверніться до AddUsersHowto) запускати певні програми як Root, не знаючи кореневого пароля." - Це саме те, про що я сказав у своєму питанні.
s3v3n

3
Питання стосується сервісу, а не команди
s3v3n

Відповіді:


22

Коротка відповідь

Щоб скасувати "кешовані" дії аутентифікації користувачів при перезавантаженні. Це не демон, просто сценарій, який виконується під час завантаження.


Широка відповідь

Перевіривши файл init, /etc/init.d/sudoякий "запускає послугу", ви можете легко побачити, що він робить:

case "$1" in
  start)
        # make sure privileges don't persist across reboots
        if [ -d /var/lib/sudo ]
        then
                find /var/lib/sudo -exec touch -t 198501010000 '{}' \;
        fi
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

Таким чином, він в основному торкається деяких файлів при /var/lib/sudoзапуску системи, щоб мати дуже стару часову позначку модифікації. Як результат, надані «кешовані» дії аутентифікації скасовуються при запуску служби (що відбувається при завантаженні).

Ще трохи подробиць про /var/lib/sudoкаталог та ті часові позначки, будь ласка? Ну, з мапа сторінки sudo(8):

[...]
Once a user has been authenticated, a time stamp is updated and the
user may then use sudo without a password for a short period of time
(15 minutes unless overridden in sudoers).
[...]
Since time stamp files live in the file system, they can outlive a
user's login session.  As a result, a user may be able to login, run a
command with sudo after authenticating, logout, login again, and run
sudo without authenticating so long as the time stamp file's
modification time is within 15 minutes (or whatever the timeout is set
to in sudoers).
[...]
/var/lib/sudo           Directory containing time stamps

Ідеальна відповідь :)
s3v3n

12

Файл 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, не запитуючи пароль.

введіть тут опис зображення


2
Він знає про те, що робить команда судо. Питання стосується системного сервісу для sudo.
gertvdijk

1
@gertvdijk - мені довелося спочатку пояснити основи, оскільки не тільки він буде дивитись на це питання. Остання частина містить єдину причину, яку я бачу у файлі sudo у службовій папці.
Луїс Альварадо

Дякую Луїсу Альварадо - Волвер за таку обширну інформацію та спасибі за смішний модифікований xkcd, що посилається на !!оператора bang bang, але що робить служба (НЕ команда) sudo? Було б чудово, якби ви могли оновити свою відповідь, щоб дійсно відповісти на питання.
s3v3n

1
Трохи надмірності, що пояснює все це лише для фрази, врешті-решт, але це відповідає на моє запитання;)
s3v3n

1
@ LuisAlvarado-TheWolverine Haha, ваше право. Було добре, що ти відповів мені так, я зробив .. Дякую
Лусіо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.