Pseudo user policy

Проблема [ред]

Ряду програмних пакетів для реалізації роботи з пониженням привілеїв (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:

[Ред]