Чи погана звичка входити в систему як спільний користувач?


35

Я працював в організаціях, де замість створення нового користувача Ubuntu на людину, яка хоче увійти в машину, sysadmins просто додає ключ ssh кожного користувача .ssh/authorized_keys, а всі - sshдо машини як ( наприклад ) ubuntu@hostабо ec2-user@host. (Між іншим, я також бачив, як це практикується на спільних Mac minis в лабораторних умовах.) Це прийнята практика чи анти-модель?

Запропоновані хости в основному використовуються для тестування, але також є вжиті дії, які зазвичай вимагають конфігурації кожного користувача та відслідковуються як такі, що виконуються певним користувачем, як-от створення та натискання git-комітетів, які в даний час виконуються за допомогою загального git користувач.


23
У той час як у багатьох людей виникають проблеми з багатолюдними стосунками, інші справляються з ними просто чудово, тому я не думаю, що це обов'язково "погана звичка" ділитися ... о, ніколи, ви мали на увазі обліковий запис користувача .
HopelessN00b

Awww, хтось редагував заголовок clickbait .. :(
Бургі,

Відповіді:


42

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

Якщо причиною цієї схеми розподілу uid є просто зменшення адміністративних витрат на створення нових облікових записів та конфігурацію спільного доступу, то, можливо, адміністраторам слід вкласти певний час в систему автоматизації, як Ansible , Chef , Puppet або Salt, яка робить такі речі, як створення користувачів рахунки на декількох машинах надзвичайно прості.


4
Це навіть не злоба, і це навіть не некомпетентність. Коли все, що я роблю, не працює, я не можу припустити, що запам'ятав би все, що було зроблено на цьому рахунку.
djechlin

Принципи захищених даних: Цілісність Конфіденційність Наявність підзвітності. +1 за використання слова підзвітність
DeveloperWeeks

7

Для початку це мене не шокує, і я працюю в надзвичайно захищеному середовищі. У кожного є власний користувальницький і машинний і ssh ключ, і для роботи на сервері ми входимо, як root, або як інший користувач, через реле журналу, якщо це необхідно. Все, що ми робимо, записується як власник ключа ssh, тому підзвітність нормальна.

Якою була б альтернатива? Багато речей потрібно робити як певний користувач, не кажучи вже про root. Судо? Це нормально для деяких дуже обмежених завдань, але не для систематичного управління машиною.

Однак я не впевнений у твоєму останньому абзаці, ти маєш на увазі, що хтось може підштовхнути git виконувати загальний користувач? Це порушило б підзвітність, а порушення звітності - це погано. Ми робимо git з машини, на якій ми увійшли в систему, і ми підтверджуємо автентифікацію git за допомогою нашого ключа ssh ...

Аутентифікація, авторизація та облік (AAA) - класичний вираз: ви автентифіковані своїм ключем ssh, ви маєте право робити все, що може зробити загальний користувач, тому що ваш ключ знаходиться в санкціонованих_керах, і вам потрібен обліковий запис, щоб те, що ви робите може бути переглянута після факту.


3
Отже, загальний користувач має якусь аутентифікацію (ключ ssh?), Який має право змінювати git repo? Це насправді не добре. Не тільки тому, що це порушує відповідальність за цю фіксацію, але й тому, що будь-яка людина може скопіювати цей ключ і використовувати його з іншого місця. Коли у мене виникають такі проблеми, я копіюю код або diff на свою локальну машину і виконуючи її звідти.
Закон29

2
Чому саме це не sudoприйнятно для загального управління машиною?
Blacklight Shining

4
ви врізаєтеся як root у "надзвичайно захищеному середовищі" oO?
xaa

@BlacklightShining Якщо вам доведеться робити що-небудь (chown, chmod довільні файли, встановлювати сервери, монтувати файлові системи, нічого не можна отримати, ввівши користувач і зробивши sudo bash. Натомість, ssh використовуйте або реле журналу. та / або заносьте все на віддалений сервер із t.власником ключа ssh, який входив.
Law29

1
@xaa Так, це так, і я не бачу проблеми з цим. Все, що я набираю, реєструється на інших машинах. "Не працюйте як корінь" - абсолютно марна максима, коли машина є сервером, де все, що ви, можливо, хочете зробити, потрібно, щоб ви були root.
Закон29

3

Це чітко залежить від випадку використання системи. Якщо це система тестування час від часу, для мене це добре. У нас також є такі системи. Якщо компанія не має жодного виду управління ідентифікацією (LDAP, IPA), то створення нового користувача без будь-якого дистанційного керування випадковою системою є досить тягарем.

Але для щоденної роботи, коли хтось помиляється, коли ціла компанія не може працювати, не є хорошою ідеєю.


Точно, якщо у вас немає або не можете мати службу каталогів, створювати та керувати тисячами облікових записів недоцільно.
Джим Б

Навіть якщо ви не можете використовувати LDAP, ви все ще матимете SSH-доступ (або Powershell в Windows). Вам все одно знадобиться спосіб керувати файлом санкціонованих_кітей на ваших хостах для всіх цих облікових записів (якщо ви також не ділитеся паролями) та тону інших налаштувань. Мені цікаво, чому ви не використовуєте якесь управління конфігурацією (наприклад, Лялька, Шеф-кухар, Відповідь) Якщо у вас так багато користувачів або серверів. Знімає цей тягар і дає взаємний контроль, підзвітність та аудиторську перевірку.
Martijn Heemels

3

Усі ці відповіді стосуються занепокоєння підзвітності, що є важливим і реальним питанням, але використання спільного облікового запису також дозволяє здійснити не дуже тонкі атаки на інших користувачів:

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

В основному, використання спільного облікового запису на комп’ютері - це як пиття з ванни для ніг у громадському басейні.


1

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

  1. Кожна налаштування, зроблена для цього користувача, впливає на всіх, хто входить у систему. (Promt, псевдоніми, ...)
    1. Ви втрачаєте можливість дізнатися, хто що робив (підзвітність)
    2. Одна помилка в конфігурації облікового запису (наприклад, випадкове видалення ssh kay) стосується всіх, хто користується цим обліковим записом користувача (у цьому прикладі блокується).

І напевно впевнені, що є ще більше недоліків ... Але я не хочу вникати в це далі.

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

У таких налаштуваннях у вас є можливість поділитися цим обліковим записом для входу (для вищезазначених міркувань я б не хотів цього робити) або ви входите окремо та перемикаєте користувача на спільний рахунок (я б радив це).

Інструменти аудиту все одно дозволять вам відстежувати, хто що виконав, але все ще ділиться тим самим обліковим записом.

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