Правила OpenLDAP sudo-ldap не работают
У меня есть сервер OpenLDAP на Ubuntu 22.04 с пользователями, связанными с группой posix «group1».
я настроилsudo-ldapтак что права sudo управляются сервером иsssdдля кэширования и запроса прав sudo.
Проблема в том, что правила не работают, когда я пытаюсь выполнить команду sudo с пользователем1 или пользователем3, я всегда получаю «пользователь не авторизован для запуска команды sudo на ..."
Я настроил sudoRoles в ldap с помощью этого файла.sudo.ldif:
dn: cn=admins,ou=sudoers,dc=example,dc=fr
objectClass: sudoRole
objectClass: top
cn: admins
sudoCommand: ALL
sudoHost: ALL
sudoRunAsUser: ALL
sudoUser: user1,user2
dn: cn=defaults,ou=SUDOers,dc=example,dc=fr
objectClass: top
objectClass: sudoRole
cn: defaults
description: Default sudoOption's go here
sudoOption: env_keep+=SSH_AUTH_SOCK
sudoOption: insults
sudoOption: pwfeedback
sudoCommand: /sbin/shutdown
sudoCommand: /bin/mount
sudoCommand: /bin/umount
sudoCommand: /usr/bin/make
sudoCommand: /usr/bin/dpkg
sudoCommand: /usr/bin/aptitude
sudoCommand: /usr/bin/apt-get
sudoCommand: /usr/bin/apt-key
sudoCommand: /usr/bin/apt
sudoCommand: /usr/bin/add-apt-repository
sudoCommand: /usr/bin/apt-add-repository
sudoCommand: /sbin/reboot
sudoCommand: /usr/bin/npm
sudoUser: %group1
Таким образом, user1 и user2 имеют полные права администратора, а для остальных правило по умолчанию применяется только к пользователям из группы unix.
Типичный пользователь имеет эти атрибуты (извлеченные изslapcatкоманда:
dn: uid=user3,dc=example,dc=fr
cn: user3
uid: user3
uidNumber: 2266
loginShell: /bin/bash
homeDirectory: /home/user3
gidNumber: 2000
userPassword:: e2NyeXB0fUVKeHNLazM3SkxWRkk=
shadowLastChange: 19265
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: person
sn: user3
structuralObjectClass: inetOrgPerson
entryUUID: 68a16f0c-d51d-103c-98b5-a194ee75d300
creatorsName: cn=admin,dc=dsimb,dc=inserm,dc=fr
createTimestamp: 20220930150756Z
ou: Users
ou: SUDOers
o: group1
entryCSN: 20230110145746.062358Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=fr
modifyTimestamp: 20230110145746Z
У меня есть группа posixgroup1с gid 2000 на всех машинах, связанных со всеми пользователями, а также я создал группу ldap group1:
dn: cn=group1,ou=Groups,dc=example,dc=fr
structuralObjectClass: posixGroup
entryUUID: c8816a74-c7c3-103c-9b5d-cf252e8ef64c
creatorsName: cn=admin,dc=example,dc=fr
createTimestamp: 20220913152337Z
objectClass: posixGroup
userPassword:
cn: group1
gidNumber: 2000
memberUid: user1
memberUid: user2
memberUid: user3
Мойsssd.confфайл:
[sssd]
config_file_version = 2
domains = example.fr
services = nss,pam,sudo
[nss]
[pam]
[sudo]
[domain/example.fr]
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://example.fr
cache_credentials = True
ldap_search_base = dc=example,dc=fr
override_homedir = /home/%u
enumerate = true
sudo_provider = ldap
ldap_sudo_search_base = ou=SUDOers,dc=example,dc=fr
ldap_sudo_full_refresh_interval=86400
ldap_sudo_smart_refresh_interval=3600
The nsswitch.conf:
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: files sss ldap
group: files sss ldap
shadow: files sss
gshadow: files
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files sss
ethers: db files
rpc: db files
netgroup: nis sss
automount: sss
sudoers: sss
вsudo-ldap.conf:
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE dc=example,dc=fr
URI ldap://example.fr
sudoers_base ou=SUDOers,dc=example,dc=fr
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
Я что-то пропустил ?