Практика полягає не у створенні одного користувача та групи за програмою, а за послугою. Тобто програми, які виконуються місцевим користувачем, не потрібно встановлювати як користувач, крім root. Це демони , програми, що працюють у фоновому режимі, і які виконують запити, що надходять через мережу або інші засоби зв'язку, які повинні працювати як виділений користувач.
Демон працює як призначений користувач, так що, якщо він поводиться недоброзичливо (через помилку, ймовірно, викликану зловмисником), шкода, яку він може зробити, обмежена: зачіпаються лише файли даних демона (якщо тільки зловмиснику не вдалося знайти локальну кореневу дірку , що може статися). Наприклад, демон бази даних mysqld
працює як виділений користувач і група, mysql:mysql
а файли даних бази даних ( /var/lib/mysql/*
) належать mysql:mysql
.
Зверніть увагу, що виконувані демони та інші статичні файли даних та конфігурації, які використовуються, але не повинні бути змінені демоном, не повинні належати спеціальному користувачеві; їм належить root:root
, як і більшість програмних та конфігураційних файлів. У mysqld
процесі немає перезапису бізнесу /usr/sbin/mysqld
або /etc/mysql/my.cnf
, таким чином, ці файли не повинні належати mysql
користувачеві або бути написаними mysql
користувачем або mysql
групою. Якщо деякі файли потрібно читати тільки демоном та адміністратором, вони повинні належати користувачу root та виділеній групі та мати режим 0640 ( rw-r-----
).
Спеціальна категорія виконуваних файлів, яка не може бути власником, root:root
- це програми, на які користувач викликає, але потребують виконання додаткових привілеїв. Ці виконувані файли повинні бути УИП коренем , якщо вони повинні працювати (по крайней мере, частково) в якості кореня; тоді виконуваний файл повинен мати режим 4755 ( rwsr-xr-x
). Якщо програма потребує додаткових привілеїв, але не як корінь, то програму слід зробити жорсткою, щоб додаткові привілеї надходили через групу, а не через користувача. Тоді виконуваний файл має режим 2755 ( rwxr-sr-x
). Причини двоякі:
- Виконавчому файлу не слід дозволяти змінювати себе, так що якщо користувачеві вдасться використати вразливість, вони можуть мати змогу змінювати файли даних, які використовуються програмою, але не вводити троянський кінь у виконуваний файл, щоб атакувати інших користувачів, що виконують програму. .
- Файл даних виконавчого файлу належить до групи. Установлена програма повинна перемикатися між реальним користувачем (користувачем, який викликав програму), щоб взаємодіяти з користувачем та ефективним користувачем (користувачем, який працює у програмі), щоб отримати доступ до своїх приватних файлів даних (причина цього мати додаткові пільги). Встановлена програма може також виділяти дані для кожного користувача, доступні лише для групи (наприклад, зберігаючи файли, що належать користувачу, у каталозі, доступному лише для root та групи програми).