Проблема [ред]
Ряду програмних пакетів для реалізації роботи з пониженням привілеїв (privilege separation) потрібно псевдопользователь (і зазвичай - відповідна група; чисельне значення - від 1 до 499 згідно прийнятих норм).
Ідея попередньо «забити» всіх потрібних псевдо в / etc / passwd і / etc / group прямо при створенні пакета setup приречена на зіткнення з непередбаченими потребами і серйозними проблемами з інтеграцією змін - адже нові версії цих файлів будуть встановлені як * .rpmnew. а автоматизовані засоби відомості змін не додаються.
Здається розумним поєднання цих підходів: підтримка списку зареєстрованих UID / GID і реалізація додавання «на вимогу», але з фіксованими значеннями. Для цього потрібно написати (узагальнити наявні) макроси для перевірки колізій (наявність користувача з «неправильними» uid / gid. Як було з sympa; наявність «реального» користувача з uid / gid> = 500).
При цьому для зменшення щільності цих самих колізій пропонується віддавати перевагу іменам виду «_name» для «системних» користувачів і груп.
Суть policy [ред]
- Якщо програма для своєї роботи не вимагає прав root. вона повинна працювати від імені непрівелігірованного псевдопользователя.
- При цьому різні програми слід запускати від імені індивідуальних псевдопользователей, у випадках, коли програми ніяк не пов'язані один з одним, а саме:
- файлова система (загальні файли або каталоги для IPC)
- SYSVIPC
- сигнали, які посилає процесам
- узагальнено, то, на що поширюються unix permissions
Приклад закладу псевдопользователя [ред]
Права на каталоги [ред]
При упаковці додатків слід приділяти належну увагу правам доступу, що виставляються на файли і директорії, що належать цьому додатку. Детально про це можна почитати в ALT Linux Secure Packaging Policy.
- Якщо в каталог пише тільки один псевдопользователь, то 0770 root: _pseudouser_group
- Якщо в каталог пише не тільки один псевдопользователь, то якщо у них немає спільних для запису файлів, то 3770, інакше 2770.
- Якщо псевдопользователі тільки читають з каталогу, то 0750.
- Якщо псевдопользователі тільки відкривають файли з каталогу, то 0710
Видалення користувача [ред]
Видаляти псевдопользователей не слід.
В силу специфічного порядку виконання пакетних скриптів в rpm прописаний в% postun userdel при оновленні пакету відпрацює після% post (з якими завгодно useradd) з оновлюваного пакета. Результатом буде відсутність користувача після установки пакета взагалі. Так що нехай вже краще не видаляються ... заодно вирішувати питання з «плаваючими» правами в умовах відсутності полісі на фіксування UID / GID динамічно створюваних користувачів і груп.
Виправлення ситуації, якщо псевдопользователь був видалений [ред]
На прикладі webalizer.spec версії 2.01.10-alt3: