Отредактируйте файл Sudoers, чтобы разрешить права sudo для группы домена AD

Недавно мне удалось подключить компьютер с Ubuntu Server 18.04 к Windows AD моей компании. Я могу войти с моими учетными данными AD, однако я хочу сделать еще один шаг...

Это статья, которой я следовал, чтобы перенести мой компьютер с Ubuntu 18.04 в домен Windows, обратите внимание, что я не делал никаких настроек по ограничению входа по ssh в группу домена, поскольку я все еще испытываю трудности. https://www.smbadmin.com/2018/06/connecting-ubuntu-server-1804-to-active.html?showComment=1548915938955

Тем не мение....

Цель того, чего я пытаюсь достичь, заключается в следующем:

  • Добавьте в файл /etc/sudoers строку, которая указывает группу AD в моей организации.
  • Члены этой группы должны иметь доступ sudo на компьютерах Linux в нашей организации.

Что я сделал:

  • Я попытался добавить такие строки, как:
  • "nameofdomain \ nameofgroup ALL = (ALL: ALL) ALL"
  • И еще.... Однако всякий раз, когда я пытаюсь выполнить sudo с пользователем, которого я знаю, находится в группе, я получаю обычное "... пользователь не в sudoers... об инциденте будет сообщено..."

Что может быть причиной этого? Возможно, это связано с настройками, которые я указал при подключении машины к домену AD?

Полный путь к этой группе следующий: - имя домена / Группы /Elab/Elab-Level3

Вот конфигурация для моих файлов, используемых для присоединения к домену AD:

krb5.conf

[libdefaults]
    default_realm = MYREALM
dns_lookup_kdc = true
dns_lookup_realm = true

...... остальная часть файла........

realmd.conf

[users]
 default-home = /home/%D/%U
 default-shell = /bin/bash

[active-directory]
 default-client = sssd
 os-name = Ubuntu Server
 os-version = 18.04

[service]
 automatic-install = no

[mydomain]
 fully-qualified-names = yes
 automatic-id-mapping = no
 user-principal = yes
 manage-system = yes

sssd.conf

[sssd] 
domains = mydomain config_file_version = 2
services = nss, pam, ssh

[domain/mydomain]
ad_domain = mydomain
krb5_realm = MYDOMAIN
realmd_tags = manages-system joined-with-adcli 
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u@%d
access_provider = ad
ldap_user_ssh_public_key = altSecurityIdentities

Я действительно надеюсь, что у кого-то здесь есть ответ, я искал много много тем и не смог взломать этот орех

5 ответов

Решение

Если группа состоит из одного слова, то достаточно добавить следующую запись в файл / etc / sudoers:

%ActiveDirectoryUserGroup ALL=(ALL:ALL) ALL

Если группа содержит пробелы, то запись должна выглядеть так:

%Domain\ Users ALL=(ALL:ALL) ALL
%Domain\ Admins ALL=(ALL:ALL) NOPASSWD:ALL
%Linux\ Admins ALL=(ALL:ALL) NOPASSWD:ALL

Здесь "Домен \ Пользователи", "Домен \ Администраторы", "Linux\ Администраторы" - это имя группы в Active Directory.

Я побежал sudo visudo и я добавил эту строку:

%linuxadm@mycompany.com  ALL=(ALL:ALL) ALL

и это наконец работает.

%MYDOMAIN\\domain\ admins  ALL=(ALL) ALL

ИМЯ ДОМЕНА - ВЕРХНЯЯ БУКВА, имя группы - строчная буква, Разделитель [\] и Пробел экранируются символом '\'.

Я добился того, что вам нужно, создав специальную группу пользователей домена - cansudo. Причина, по которой я сделал это таким образом, заключалась в том, чтобы отделить возможность sudo от администратора домена, а также отличиться от локальной группы sudo.

В зависимости от того, есть ли у вас префикс домена по умолчанию для пользователей и групп, строка, которая будет работать, будет следующей:

%MYDOMAIN\\cansudo ALL=(ALL:ALL) ALL

или же

%cansudo ALL=(ALL:ALL) ALL

Я долго ломал голову над этим, а потом решил поставить оба на всякий случай.

Спасибо, Крис! Первый стиль,%MYDOMAIN\\cansudo ALL=(ALL:ALL) ALL, это тот, который наконец сработал для меня. Я использую контроллер/файловый сервер Zentyal (ebox) AD. Я не мог предоставить никому, кроме права администратора установки (меня), sudo, теперь я могу.

Другие вопросы по тегам