У найсучаснішому Linux-дистрибутиві використовується дуже регульований і налаштований інструмент, який називається sudo . Ви, можливо, вже чули про це. У Windows під час встановлення програми ви повинні вказати пароль адміністратора.
У Ubuntu користувач адміністратора (root) за замовчуванням відключений. Ви навіть не знаєте його пароля, ніхто не робить, поки ви не змінили його пароль sudo. Користувач може отримати привілеї root на короткий проміжок часу або на одне завдання (наприклад, встановлення програми). Цей користувач повинен мати права на використання sudo(налаштований у /etc/sudoers). З sudoпрограмою, яка виконується, виконується як користувач root.
Потім у графічних сесіях, керованих gnome, є інші механізми виконання адміністративних завдань. Один з них - policyKit . На задньому плані працює демон із кореневими привілеями. Наприклад, якщо користувач хоче вимкнути машину (що може тільки корінь), користувач спілкується з цим демоном через захищений контекст (званий D-Bus ). Якщо це надано, демон виконує команду відключення системи. Ці правила визначені в /usr/share/polkit-1/actions/*.
Gnome часто постачається із рішенням із одноразовим входом під назвою Gnome Keyring . У цьому брелоку можуть зберігатися ваші облікові записи. Коли ви авторизуєтесь через мережеву спільну доступність (наприклад, у nautilus), вам буде запропоновано ввести пароль і з'явиться прапорець, щоб запам'ятати вам пароль. Він буде зберігатися в брелоку, базі даних, захищеній паролем. Ця база даних буде розблокована під час графічного входу через PAM .
Потім є AppArmor, який базується на SELinux . AppArmor визначає профілі для різних додатків, що працюють у системі. Ці профілі обробляють і обмежують доступ, який потребує конкретна програма.
Усі ці механізми також впроваджені в операційні системи Windows. Просто по-іншому, менш прозорий спосіб.
Я справді можу порекомендувати лекцію згаданих вище механізмів, щоб зрозуміти, як вони працюють разом.
Список літератури: