Додайте користувача AD Domain до судерів з командного рядка


10

Я налаштовую VM сервера Ubuntu 11.04 для використання в якості сервера баз даних. Це полегшило б життя кожному, якби ми могли ввійти в систему людей за допомогою облікових даних Windows і, можливо, навіть змусити машину працювати з поточною безпекою, керованою AD, у нас є деінде.

Перший етап цього було реально легко здійснити - apt-get install likewise-openі я був дуже багато в бізнесі. Проблема, яка у мене виникає, - це введення наших адмінів у групи судерів - я, здається, нічого не можу взяти. Я спробував:

а) usermod -aG sudoers [username]
б) додавання імен користувачів у кількох форматах (DOMAIN \ user, user @ domain) у файл sudoers.

Жоден з яких, здавалося, не взяв, мені все одно кажуть "ДОМАН \ користувача немає у файлі судорів. Про цей випадок буде повідомлено"

Отже, як додати не місцевих користувачів до судерів?

Відповіді:


6

Я стикаюся з цією проблемою, і ось моє рішення:

Редагувати /etc/sudoers: із наступними записами

Спочатку перевірте aduser за допомогою ідентифікатора команди

#id <AD user>( #id domain\\aduser01 )

Результати на моєму:

SMB\aduser01@linux01:~/Desktop$ id smb\\aduser02
uid=914883676(SMB\aduser02) gid=914883073(SMB\domain^users) groups=914883073(SMB\domain^users),1544(BUILTIN\Administrators),1545(BUILTIN\Users),914883072(SMB\domain^admins)

getent passwdі gid NUMBERSне працює для мене. DOMAIN\\domain^usersпрацює для мене

%SMB\\domain^users ALL=(ALL) ALL

як ми всі знаємо, працює і окремий користувач AD

SMB\\<aduser01> ALL=(ALL) ALL

2

у нас довге доменне ім’я з суфіксом .local,

сусід

%domainname\\group ALL=(ALL) ALL

ні то

%domainname.local\\group ALL=(ALL) ALL

працював ...

але якщо я використовую лише ім'я групи так:

%Domain^Admins ALL=(ALL) ALL

це працює.


Це було рішення, яке спрацювало врешті-решт. %Domain^Admins ALL=(ALL) ALL
mjp

2

Проблема з іншими пропозиціями полягає в тому, що

  • вони працюють лише тоді, коли у вас є доступ до корпоративної локальної мережі (або VPN)
  • вам доведеться постійно підтримувати файл sudoers на кожному комп'ютері
  • як бонус, вони не працювали для мене - зовсім

Натомість я хотів чогось такого

  • кешує як облікові дані, так і доступ до sudo
  • управляється централізовано

Фактичне рішення - це використання SSSD та розширення схеми AD. Таким чином SSSD періодично отримує налаштування sudo та облікові дані користувачів з AD та підтримує локальний кеш їх. Потім правила sudo зберігаються в об’єктах AD, де ви можете обмежити правила лише комп'ютерами, користувачами та командами, навіть - все це, не торкаючись жодного файлу sudoers на робочих станціях.

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

TL; DR:

AD

Візьміть останню версію sudo , отримайте файл doc / schema.ActiveDirectory , а потім імпортуйте (переконайтесь, що ви змінили шлях домену відповідно до вашого доменного імені):

ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .

Перевірте це за допомогою ADSI Edit: відкрийте контекст іменування схеми та шукайте клас sudoRole .

Тепер створіть OU sudoers в корені вашого домену, цей OU буде містити всі параметри sudo для всіх ваших робочих станцій Linux. Під цим OU створіть об’єкт sudoRole. Щоб створити об’єкт sudoRole, вам потрібно скористатися редакцією ADSI, але після їх створення можна скористатися користувачами та комп'ютерами Active Directory, щоб змінити його.

Припустимо, у мене є комп’ютер на ім'я foo32linux , користувач під назвою stewie.griffin, і я хочу дозволити йому виконувати всі команди з sudo на цьому комп. У цьому випадку я створюю sudoRole об'єкт під sudoers OU. Для sudoRole ви можете використовувати будь-яке ім’я, яке ви хочете - я дотримуюся імені комп'ютера, оскільки я користуюся правилами на комп'ютері. Тепер встановіть його атрибути наступним чином:

  • sudoHost : foo32linux
  • sudoCommand : ВСІ
  • sudoUser : stewie.griffin

Для команд ви також можете використовувати конкретні записи, наприклад / bin / less або будь-які інші.

SSSD

Додайте до свого /etc/sssd/sssd.conf щонайменше:

[sssd]
services = nss, pam, sudo

[domain/AD.FOOBAR.COM]
cache_credentials = True

SSSD оновлює свій локальний кеш оновленими правилами кожні кілька годин, але найпростіший спосіб перевірити це - просто перезавантажити комп'ютер. Потім увійдіть із користувачем AD та перевірте:

sudo -l

У ньому повинні бути перелічені всі пов'язані програми, які ви додали до цього користувача та комп'ютера. Простенька!


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

Власне, я додав істотні частини, тобто концепцію. Я міг би вибрати деякі інші частини, але вони не потрібні без решти і без розуміння великої картини, тому я не бачу сенсу. Це принесло б більше шкоди, ніж користі.
bviktor

- це правило AskUbuntu, що хтось, хто приходить разом, повинен мати можливість переглянути вашу відповідь і вирішити їх питання, не відвідуючи зовнішній сайт.
The Wanderer

1
Додано більш релевантну інформацію.
bviktor

1

Найкраща інформація, яку я міг знайти з цього приводу, тут:

http://www.mail-archive.com/likewise-open-discuss@lists.likewisesoftware.com/msg00572.html

В основному, ви просите змінити /etc/sudoersфайл з правильною конфігурацією, щоб люди з групи адміністратора в AD мали доступ до всіх привілеїв.

Якщо вам потрібно бути вибірковими та обмежуватись користувачем, ви також можете це зробити. Але він попереджає, що ви повинні переконатися, щоб дізнатися, що ім’я користувача в системі Linux, використовуючи getend passwdкоманду, як показано на малюнку.


Завдяки дійсно не міг зрозуміти, де шукати. Для запису DOMIAN \\ ім'я користувача працює для приватних осіб.
Wyatt Barnett

0

Використовуючи Centify direct, я додав користувача домену у файл / etc / sudoers.

(Користувач домену) ALL = (ALL) ВСЕ


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