Отредактируйте файл 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, теперь я могу.