У найсучаснішому 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. Просто по-іншому, менш прозорий спосіб.
Я справді можу порекомендувати лекцію згаданих вище механізмів, щоб зрозуміти, як вони працюють разом.
Список літератури: