Найкраща практика UID == GID?


3

Я встановлюю вікно RH Linux для викладання. У минулому у мене було дві групи, facultyі students. Кожен студентський рахунок був призначений на первинну групу students, інструктора faculty.

Я читав Немета та ін. Система адміністратора Unix та Linux (4-е видання), і вони рекомендують, щоб основна група кожного облікового запису була такою ж, як ідентифікатор користувача.

Що є кращим?

  • Налаштувати облікові записи учнів у своїй основній групі так само, як їх ідентифікатор користувача (ig, uid == gid), а потім додати їх до studentsгрупи?

  • Або я повинен просто додати всіх учнів спочатку до students групи, як я це робив у минулому?

Ці семантично однакові?

Особливо з точки зору безпеки. Я планую зробити деякий зразок групи кодів / файлів, читабельним для всіх студентів, але, очевидно, хочу уникати того, щоб студенти легко заглядали в каталоги один одного.

Відповіді:


4

Якщо ви хочете зробити так, щоб учні не мали доступу до файлів один одного, у вас є два варіанти:

  1. Використовуйте GID для кожного користувача (UID == GID) і встановіть umask за замовчуванням на 0750.
  2. Установіть umask за замовчуванням на 0700.

Перший варіант швидше реалізувати і набагато рідше зламати речі. Майте на увазі, що немає практичного способу без використання чогось подібного SELinux, щоб люди не навмисно дозволяли іншим отримувати доступ до своїх файлів.


3

Багато дистрибутивів автоматично створюють основну групу разом з новим обліковим записом користувача. За замовчуванням він використовує наступний доступний ідентифікатор, і це зазвичай означає, що UID нового користувача буде дорівнює його GID, якщо ви раніше не створили групу з присвоєним їй автоматичним GID або UID без власного основного групи.

Скажімо, UID == GID, таким чином, є помилкою, як і на багатьох багатокористувацьких машинах, UID може не відповідати GID користувача.

Зазвичай усі облікові записи користувачів також є членами загальної групи, users(100)тому в системах, де кожен обліковий запис має свою первинну групу, ви можете переходити з парадигми на іншу, наприклад, за chown -R :users .допомогою файлів у папці.


2

В основному це питання особистих уподобань.

У мене було те саме питання кілька років тому. Я робив деякі дослідження цього питання.
Наскільки мені вдалося визначити, жодної реальної користі для жодного з методів немає. Більшість основних дистрибутивів Linux в наші дні, як видається, за замовчуванням використовується метод UID = GID. Деякі інші системи Unix все ще віддають перевагу іншій методології. Це насправді не має значення, якщо ви належним чином використовуєте UMASK. (750 є стандартним для GID = UID, 700 є кращим, якщо GID поділяють декілька користувачів.)

Може існувати якесь програмне забезпечення, яке передбачає те чи інше, але для кожного випадку програмного забезпечення, яке віддає перевагу GID = UID, ви можете знайти інший фрагмент програмного забезпечення, який хоче його навпаки. І ви завжди зможете змусити працювати, якщо ви творчо використовуєте chown та chgrp.

У деяких організаціях можливо, є перевага спільному GID, через спосіб налаштування ресурсів спільної мережі. (Дозволи NFS або спосіб відображення дозволів Unix на SMB ACL.)

Тож я б ішов із потоком: Використовуйте все, що прописано у вашій організації (якщо є таке правило) або що є за замовчуванням у вашому дистрибутиві на вибір (щоб мінімізувати проблеми з програмами, які передбачають певну систему на основі використовуваного дистрибутива).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.