Назад | Перейти на главную страницу

sssd: есть ли способ принудительно установить определенную оболочку для некоторых членов группы?

Контекст

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

Итак, вместо того, чтобы связывать их с /bin/bash (например), я бы хотел заставить их использовать /path/to/my/script. Эти пользователи входят в определенную группу AD.

Другие люди должны иметь возможность использовать настоящую оболочку.

Классический способ

Если бы эти пользователи были локальными пользователями, я бы просто изменил поле оболочки в /etc/passwd.

Путь sssd

Есть ли способ указать другое значение оболочки только для членов этой группы?

Если нет, как бы вы это сделали?

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

[sssd]
config_file_version = 2
services = nss, pam
domains=DOMAIN_GROUP1,DOMAIN_GROUP2,DOMAIN

[nss]
default_shell = /bin/bash

[domain/DOMAIN_GROUP1]
id_provider = ad
# Domain
ad_domain = domain.local
# Servers
ad_server = dc01.domain.local,dc02.domain.local,dc03.domain.local
# Restrict to group members
ldap_user_search_base = DC=domain,DC=local?subtree?(memberOf=CN=group1,OU=Groups,DC=domain,DC=local)
# Shell
override_shell = /shell/path/for/group1
# Homedir
override_homedir = /home/%u

[domain/DOMAIN_GROUP2]
id_provider = ad
# Domain
ad_domain = domain.local
# Servers
ad_server = dc01.domain.local,dc02.domain.local,dc03.domain.local
# Restrict to group members
ldap_user_search_base = DC=domain,DC=local?subtree?(memberOf=CN=group2,OU=Groups,DC=domain,DC=local)
# Shell
override_shell = /shell/path/for/group2
# Homedir
override_homedir = /home/%u


[domain/DOMAIN]
id_provider = ad
# Domain
ad_domain = domain.local
# Servers
ad_server = dc01.domain.local,dc02.domain.local,dc03.domain.local
# Homedir
override_homedir = /home/%u

Члены group1 использовать /shell/path/for/group1, Члены group2 использовать /shell/path/for/group2, все остальные DOMAIN пользователи используют /bin/bash

Обратной стороной является то, что пользователь является членом обеих групп: он всегда будет попадать в первый «домен» DOMAIN_GROUP1.

РЕДАКТИРОВАТЬ: использование ldap_user_search_base вместо устаревшего ldap_user_search_filter. Он должен работать с более новыми версиями sssd.

Вероятно, вы не можете сделать это для группы, но вы можете изменить оболочку для каждого пользователя в AD для SSSD. Откройте фактические атрибуты объекта с помощью ADSI Edit и измените атрибут «loginShell» для пользователя. В качестве альтернативы вы можете изучить возможность использования Puppet для переноса GPO в Linux и, возможно, управлять им там (хотя я не уверен, что это возможно).