Яка різниця між обліковим записом користувача та послуги?


16

Я хотів би знати різницю між обліковим записом користувача та послуги.

Я знаю, що наприклад, Jenkinsвстановлений на ubuntu - це не обліковий запис користувача, а обліковий запис служби .

  1. Що таке використання облікового запису послуги?
  2. Коли вони нам потрібні?
  3. Як я можу створити обліковий запис служби?

Відповіді:


18

Облікові записи користувачів використовуються реальними користувачами, облікові записи служб використовуються системними службами, такими як веб-сервери, агенти поштового транспорту, бази даних тощо. За умовами, і лише за умовами, облікові записи служб мають ідентифікатори користувачів у низькому діапазоні, наприклад <1000 або більше . За винятком UID 0, облікові записи послуг не мають особливих привілеїв. У облікових записах служб можуть - як правило, є власні конкретні ресурси, навіть спеціальні файли пристроїв, але вони не мають привілеїв, що нагадують надрукувальника.

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

З поважної причини: На відміну від облікових записів користувачів, облікові записи сервісів часто не мають "належної" оболонки для входу, тобто вони мають /usr/sbin/nologinяк оболонку для входу (або, як це було раніше /bin/false). Більше того, облікові записи послуг зазвичай заблоковані, тобто неможливо ввійти в систему (для традиційних, /etc/passwdі /etc/shadowце можна досягти, встановивши хеш пароля на довільні значення, такі як *або x). Це полягає в посиленні облікових записів служб від зловживань ( захист в глибині ).

Наявність індивідуальних облікових записів для кожної послуги виконує дві основні цілі: Це заходи безпеки для зменшення впливу у випадку інциденту з однією службою ( відділення ) та спрощує адміністрування, оскільки стає легше відстежувати, які ресурси належать до якої послуги . Дивіться цю чи цю відповіді на пов'язані запитання для отримання більш детальної інформації.


4

Спочатку користувачі повинні були відповідати людині за допомогою системи, звідси і назва. Кожен процес працює як конкретний користувач, і кожен файл належить певному користувачеві. Спеціальний користувач, який називається root, використовується для речей, які не належать ні одному конкретному користувачеві, тобто самій операційній системі. Оскільки root відповідає самій операційній системі, він має всі привілеї.

Незабаром люди виявили, що було зручно створювати декількох користувачів системи, без великих пільг. Це дозволяє виділити різні служби, які працюють на машині, щоб вони не ступали на пальці ніг. Обліковий запис служби (або "системний рахунок", ці два терміни є синонімами) - це той, що відповідає службі, що працює в системі, а не тому, хто використовує систему. Зазвичай у вас є обліковий запис служби для кожної задачі, що працює в системі, яка має власний набір привілеїв (наприклад, власні файли, власні мережеві порти тощо).

Не існує офіційного визначення облікового запису людини проти системи / послуги. Ядро не хвилює (окрім надання користувачам багатьох привілеїв за допомогою UID 0). Більшість команд адміністрування теж не хвилює. Деякі типові відмінності:

  • Людський користувач має справжнє ім’я, наприклад, «Джон Доу», тоді як користувач системи має описову назву, як «Демон носа» або взагалі жодна.
  • Людський користувач має реальну оболонку для входу (наприклад, /bin/shабо /bin/bashабо /bin/csh. Деякі користувачі системи мають оболонку (майже завжди /bin/sh), інші - ні, залежно від способу використання (наприклад, su fooнеобхідна fooоболонка).
  • Людський користувач часто має пароль - але це не завжди так, наприклад, у віддаленого користувача може бути лише ключ SSH. Зауважте, що в сучасних уніках пароль не в, /etc/passwdа в іншому файлі, такому як /etc/shadow.
  • Домашній каталог користувача зазвичай знаходиться під /home(або деяким місцеположенням), тоді як домашній каталог системного користувача, як правило, не міститься /homeі може не існувати (але є винятки).
  • Більшість сайтів позначають діапазон ідентифікаторів користувачів для користувачів системи та неперервний діапазон для користувачів. Зарезервувати 100–65533 або 500–65533 або 1000–65533 є типовим, і більшість дистрибутивів налаштовані для того, щоб почати виділяти реальні ідентифікатори користувачів від 500 або 1000.

На сайтах, де облікові записи діляться на декількох машинах, зазвичай існує центральний сервер, який містить списки користувачів, доступні через NIS або LDAP . passwdЗапис в /etc/nsswitch.confспеціфіціруешь , де знайти інформацію про користувача. Звичайними є користувачі системи в локальних /etc/passwdта реальних користувачів із бази даних для всієї мережі, але іноді в базі даних по всій мережі є системні користувачі (для забезпечення послідовних UID, що полегшує реплікацію сервера та даних), а іноді є користувачів у локальному файлі (щоб вони могли увійти навіть у мережу).

Обліковий запис, доступний для людини, замаскований як системний користувач, зазвичай не має справжнього імені, але має оболонку входу, або встановлений пароль, або ключ SSH, маючи ідентифікатор користувача в системному діапазоні. Насправді, було б краще замаскувати використання фактичного системного облікового запису, видалення якого призведе до припинення роботи деякої служби. Але у вас не може бути жодних жорстких правил для виявлення потенційних атак: за визначенням, зловмисники не дотримуються правил.

Службові облікові записи та людські акаунти управляються одними і тими ж командами та записуються в ті самі файли. Команди створення облікових записів можуть мати варіанти встановлення розумних значень за замовчуванням для користувачів у порівнянні з користувачами сервісу, наприклад, для вибору ідентифікатора користувача у відповідному діапазоні та запрошення пароля для людини та відключення автентифікації пароля для послуги. Наприклад, adduservs adduser --systemабо useraddvs useradd -rв Linux.


3
    1. обліковий запис служби, який називається технічним обліковим записом - це обліковий запис, призначений для використання лише службою / додатком, а не звичайним користувачем.
    1. Розробники програм та сервісів хочуть, щоб ці облікові записи обмежували пов'язані права та привілеї процесів, а не запускали їх як root. Послуги , як створені init, systemdабо подібні, які працюють в якості кореня, швидко повернутися до використання облікового запису служби для обмеження ризиків. Залежно від ОС, що використовується, облікові записи додатків можуть надавати більше привілеїв, ніж звичайні акаунти, наприклад, право прив'язуватися до привілейованого порту TCP або навпаки, зменшуються їхні привілеї порівняно зі звичайним користувачем, наприклад, забороняючи процесам обслуговування дзвінок fork/ exec. У такому випадку немає необхідності поновлювати послуги до облікового запису послуги, їх можна запустити.
    1. Вам не потрібно буде просто створювати обліковий запис без корисного пароля та з непрацюючою оболонкою (наприклад /bin/false), і він не буде доступний звичайному користувачеві, тобто не буде можливості ввійти в систему локально або віддалено (наприклад, через ssh), використовуючи назву акаунта. Як і більшість обмежень, використання кореневого акаунта або sudoдозволяє його подолати.

1

Обліковий запис служби може не мати можливості використовувати оболонку, наприклад. Він використовується для виконання служб (демон) з обмеженим обсягом та привілеєм. На мою думку, ви можете створити його як постійний користувач, просто дотримуючись прав та членства в групі. Однак більшу частину часу у вас немає, оскільки програми автоматично створюють їх під час встановлення. Погляньте/etc/passwd root:x:0:0:root:/root:/bin/bash

0 - це UID, він характеризує ієрархію облікового запису в просторі користувача, корінь над усіма, тоді ви маєте членство :rootв групі, домашній каталог, /rootнарешті, оболонка, використовувана обліковим записом /bin/bashдля "входу" в систему.

Ви можете використовувати /usr/sbin/nologinдля облікового запису, для якого не потрібно привілей для входу.

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