LDAP + sudo [РЕШЕНО]

Сервер
Имеется LDAP сервер с ОС Gentoo (2.6.31-gentoo-r10). Установлены openldap, pam_ldap, nss_ldap с такими флагами:

cat /var/db/pkg/net-nds/openldap-2.4.19-r1/USE написал(а):
berkdb crypt elibc_glibc gnutls kerberos kernel_linux odbc overlays perl samba sasl smbkrb5passwd ssl syslog tcpd userland_GNU x86

cat /var/db/pkg/sys-auth/pam_ldap-183/USE написал(а):
elibc_glibc kernel_linux ssl userland_GNU x86

cat /var/db/pkg/sys-auth/nss_ldap-264-r1/USE написал(а):
elibc_glibc kernel_linux ssl userland_GNU x86

Делалось по этой инструкции.

cat /etc/openldap/slapd.conf написал(а):

include /etc/openldap/schema/core.schema

include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema

# !! вот этой схемы не было, добавил из /usr/portage/distfiles/sudo-1.7.2p7.tar.gz/schema.OpenLDAP !!
include /etc/openldap/schema/sudo.schema

pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
loglevel -1

# Load dynamic backend modules:
modulepath /usr/lib/openldap/openldap
moduleload back_hdb.so

access to dn.base=""
by self write
by * auth

access to attrs=userPassword
by self write
by * auth

access to attrs=shadowLastChange
by self write
by * read

access to *
by * read
by anonymous auth

#######################################################################
# BDB database definitions
#######################################################################

database hdb
suffix "dc=mydomain,dc=local"

checkpoint 32 30
rootdn "cn=Manager,dc=mydomain,dc=local"
rootpw {SSHA}lalalala

directory /var/lib/openldap-data

Сервер, на который заходим, через авторизацию в LDAP

/etc/pam.d/system-auth написал(а):
#%PAM-1.0

auth required pam_env.so
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so

account sufficient pam_ldap.so
account required pam_unix.so

password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 try_first_pass retry=3
password sufficient pam_unix.so try_first_pass use_authtok nullok md5 shadow
password sufficient pam_ldap.so use_authtok use_first_pass
password required pam_deny.so

session required pam_limits.so
session required pam_unix.so
session optional pam_ldap.so

/etc/nsswitch.conf написал(а):

passwd: files ldap
shadow: files ldap
group: ldap files
sudoers: files ldap

hosts: files dns
networks: files dns

services: db files
protocols: db files
rpc: db files
ethers: db files
netmasks: files
netgroup: files
bootparams: files

automount: files
aliases: files

/etc/ldap.conf написал(а):
host ldap.mydomain.ru
base dc=mydomain,dc=local
uri ldap://ldap.mydomain.ru
ldap_version 3
scope one

pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_member_attribute uniquemember

pam_password exop

nss_base_passwd ou=People,dc=mydomain,dc=local
nss_base_shadow ou=People,dc=mydomain,dc=local
nss_base_group ou=Group,dc=mydomain,dc=local
nss_base_hosts ou=Hosts,dc=mydomain,dc=local

/etc/ldap.conf.sudo написал(а):
suffix dc=mydomain,dc=local
sudoers_base ou=People,dc=mydomain,dc=local

bind_timelimit 30
timelimit 30
host ldap.mydomain.ru
sudoers_debug 2

nss_base_passwd ou=People,dc=mydomain,dc=local
nss_base_shadow ou=People,dc=mydomain,dc=local
nss_base_group ou=Groups,dc=mydomain,dc=local
nss_base_hosts ou=Hosts,dc=mydomain,dc=local

cat /var/db/pkg/app-admin/sudo-1.7.2_p7/USE написал(а):
elibc_glibc kernel_linux pam userland_GNU x86

По ssh заходим без проблем.

Cуть проблемы: не получается выполнить sudo. Что нужно добавить/поменять?

myserver: sudo -s
Пароль:
test1 is not in the sudoers file.  This incident will be reported

/etc/init.d/nscd status
 * status:  started

В какой группе/ou LDAP должен быть юзер (для ou=People не работает )?

Гугл не пробовал юзать

Гугл не пробовал юзать ?
например так или этак

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Да, спасибо, пробовал. Но

Да, спасибо, пробовал. Но результатом остался недоволен.
Например, по второй ссылке предлагают создать файл /etc/sudo.ldap, хотя в gentoo используется /etc/ldap.conf.sudo - мелочь, но даже с изменениями у меня не работает.

Именно так и пробовал

Именно так и пробовал изначально. Но как-то вот не выходит каменный цветок..
Может ошибся где?

В ебилде для sudo есть такие

В ебилде для sudo есть такие строчки

Цитата:
"In 1.7 series, LDAP is no more consulted, unless explicitly configured in /etc/nsswitch.conf."

"To make use of LDAP, add this line to your /etc/nsswitch.conf:"
" sudoers: ldap files"

/etc/ldap.conf.sudo, как я понимаю, лишний (у меня работало без него). Всё что там есть нужно, по идее, прописать в /etc/ldap.conf. Но тут не уверен, давно настраивал.

Перенёс из

Перенёс из /etc/ldap.conf.sudo в /etc/ldap.conf, но ничего не изменилось:

test1@test-serv ~ $ sudo -s
Пароль:
test1 is not in the sudoers file.  This incident will be reported.

Вот что в /var/log/messages (удачный вход по ssh и ошибка при выполнении sudo -s)

Jul  1 10:47:24 test-serv sshd[12148]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.***.***  user=test1
Jul  1 10:47:24 test-serv sshd[12146]: Accepted keyboard-interactive/pam for test1 from 192.168.**.** port 60861 ssh2
Jul  1 10:47:24 test-serv sshd[12146]: pam_unix(sshd:session): session opened for user test1 by (uid=0)
Jul  1 10:47:28 test-serv sudo: pam_unix(sudo:auth): authentication failure; logname=test1 uid=0 euid=0 tty=/dev/pts/2 ruser=test1 rhost=test-serv  user=test1
Jul  1 10:47:28 test-serv sudo:    test1 : user NOT in sudoers ; TTY=pts/2 ; PWD=/home/test1 ; USER=root ; COMMAND=/bin/bash

На сервере LDAP в логах такое http://pastebin.com/ALCFDkdZ

А что прописано в/etc/sudoers

А что прописано в/etc/sudoers ? Из /etc/nsswitch.conf следует, что sudo должно смотреть в нём.

cat /etc/sudoers

cat /etc/sudoers написал(а):
# sudoers file.
#
# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# Reset environment by default
Defaults env_reset

# Uncomment to allow users in group wheel to export variables
# Defaults:%wheel !env_reset

# Allow users in group users to export specific variables
# Defaults:%users env_keep=TZ

# Allow specific user to bypass env_delete for TERMCAP
# Defaults:user env_delete-=TERMCAP

# Set default EDITOR to vi, and do not allow visudo to use EDITOR/VISUAL.
# Defaults editor=/usr/bin/vim, !env_editor

# Runas alias specification

# User privilege specification
root ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL

Собственно проблему уже решил. Добавил в LDAP группу wheel с GID=10, что дает пользователям LDAP, находящимся в соответствующей группе, право на получение рута без ввода пароля (как раз так, как мне и надо). Очевидно, что для более тонкой настройки sudo, нужно корректировать /etc/sudoers и группы в LDAP.

Спасибо ответившим.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".