Slackware/pam-ldap

slackware で PAM-LDAPへ挑戦してみる

パッケージ:nss-pam-ldapd-0.9.11-x86_64-1

設定ファイル(1):/etc/nsswitch.conf

-passwd:    compat
-group:     compat
+passwd:    files ldap
+group:     files ldap
+shadow:    files ldap

設定ファイル(2):/etc/nslcd.conf

uid    nslcd
gid    nslcd
uri    ldap://127.0.0.1/
base   group  ou=groups,dc=local
base   passwd ou=users,dc=local
base   shadow ou=users,dc=local

※起動ユーザ

# /usr/sbin/groupadd -g 88 nslcd
# /usr/sbin/useradd -u 88 -g nslcd nslcd

※起動スクリプト:/etc/rc.d/rc.nss-pam-ldapd

-    mkdir -p /run/nslcd
+    mkdir -p /var/run/nslcd
+    chown nslcd.nslcd /var/run/nslcd

設定ファイル(3):/etc/pam.d/system-auth

 auth        optional      pam_group.so
+auth        sufficient    pam_ldap.so try_first_pass
 auth        required      pam_unix.so likeauth nullok

 account     required      pam_unix.so
+account [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore authinfo_unavail=ignore] pam_ldap.so
 account     sufficient    pam_succeed_if.so uid < 100 quiet

 password    sufficient    pam_unix.so nullok sha512 shadow minlen=6 try_first_pass use_authtok
+password    sufficient    pam_ldap.so user_authtok

-session     optional      pam_gnome_keyring.so auto_start
+session     optional      pam_ldap.so

LDAPエントリ

dn: cn=users,ou=groups,dc=local
objectClass: top
objectClass: posixGroup
cn: users
gidNumber: 100
memberUid: sample01

dn: cn=sample01,ou=users,dc=local
objectClass: top
objectClass: posixAccount
objectClass: shadowAccount
cn: sample01
uid: sample01
userPassword: xxxxxx
uidNumber: 1000
gidNumber: 100
homeDirectory: /home/sample01
loginShell: /bin/bash

sudo対応

古いSlackwareの場合、sudoがpam非対応でビルドされている。その場合、当然pam.d/sudoの設定を行なっても無視される。

> sudo --version | grep configure
configure オプション: --prefix=/usr --sbindir=/usr/sbin --mandir=/usr/man --docdir=/usr/doc/sudo-1.8.16 --with-env-editor --disable-pam-session --with-pam=no --with-rundir=/var/db/sudo --with-insults --with-all-insults --with-pc-insults --build=x86_64-slackware-linux

パッケージのsudo ソースを取り寄せて、pam対応版として再ビルドを行う。

http://ftp.riken.jp/Linux/slackware/slackware64-14.2/source/ap/sudo/

[sudo.SlackBuild]ファイルのコンパイルオプションを修正。

 --disable-pam-session ⇨ --enable-pam-session
 --with-pam=no     ⇨ yes

ビルドして、アップグレード

# /bin/sh sudo.SlackBuild
...
# /sbin/upgradepkg /tmp/sudo-1.8.16-x86_64-1.txz

/etc/pam.d/sudo の設定

auth            include        system-auth
account      include        system-auth
password    include        system-auth
session       include        system-auth

sudo対象ユーザ(user_name)を/etc/group の wheelグループに追加。対象ユーザは/etc/passwdにいないユーザでもOKwww

wheel:x:10:root, user_name

wheelグループに対するsudo設定はいつも通り、/etc/sudoersを設定。

以上。



---
update at 2023/01/28 13:45:45

※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。