CentOS 5.4にsmbldap-toolsを導入する
OpenLDAP と Samba を導入したCentOS 5.4に smbldap-tools をインストールする。
2. smbldap-tools とは?
smbldap-tools はLDAP+Samba環境におけるユーザー管理ツール。LDAPにユーザーやグループを登録する際、通常はLDIFファイルを作り手動で行う必要があるが、smbldap-toolsを使うことでユーザー管理を簡単に行うことができる。
また、Sambaは認証に userPassword属性ではなく sambaLMPassword属性と sambaNTPassword属性の2つの属性を用いるが、smbldap-toolsを使用することでそれらを一括更新することができる。もちろん、使い方次第で別々のパスワードを設定することも可能。
Sambaが使用する各LDAPエントリを自動で登録するツールも用意されており、これを使わないと設定は非常に面倒なことになるので実質LDAP+Samba環境を構築する場合は必須のツールと言える。
3. インストール
例によってyumからインストールする。標準リポジトリでは提供されていないが、rpmforgeを利用できるようにしておくことでyumからインストールが可能。
[root@localhost ~]# yum -y install smbldap-tools
2009年12月15現在、yumでインストールした場合のバージョンは 0.9.5-1 だった。以降の手順の確認は本バージョンで行っており、以前・以降のバージョンでは異なる場合があるので注意してほしい。
4. 設定
smbldap-toolsには初期設定用の対話型スクリプトが用意されており、それを実行することで自動的に設定ファイルが更新される。
[root@localhost ~]# cd /usr/share/doc/smbldap-tools-0.9.5 [root@localhost smbldap-tools-0.9.5]# ./configure.pl
このとき更新される設定ファイルは
- /etc/smbldap-tools/smbldap.conf
- /etc/smbldap-tools/smbldap_bind.conf
の2つ。当然、手動で編集することも可能だ。
2つの設定ファイルの内、smbldap_bind.conf にはLDAPの管理用パスワードが平文で保存される。パーミッションを 600 に変更し、root 以外は読めないようにしておく。
[root@localhost ~]# chmod 600 /etc/smbldap-tools/smbldap_bind.conf
5. smbldap-populateの実行
Samba関連のLDAPエントリを追加するために smbldap-populate コマンドを実行する。途中、rootのためのパスワードを聞かれるので入力する……が今回の運用では何に使うのかよくわからない。適当なパスワードで構わないかも。
[root@localhost ~]# smbldap-populate Populating LDAP directory for domain HOGE (S-1-5-21-4205727931-4131263253-1851132061) (using builtin directory structure) entry dc=example,dc=jp already exist. entry ou=People,dc=example,dc=jp already exist. entry ou=Group,dc=example,dc=jp already exist. adding new entry: ou=Machine,dc=example,dc=jp adding new entry: ou=Idmap,dc=example,dc=jp adding new entry: uid=root,ou=People,dc=example,dc=jp adding new entry: uid=nobody,ou=People,dc=example,dc=jp adding new entry: cn=Domain Admins,ou=Group,dc=example,dc=jp adding new entry: cn=Domain Users,ou=Group,dc=example,dc=jp adding new entry: cn=Domain Guests,ou=Group,dc=example,dc=jp adding new entry: cn=Domain Computers,ou=Group,dc=example,dc=jp adding new entry: cn=Administrators,ou=Group,dc=example,dc=jp adding new entry: cn=Account Operators,ou=Group,dc=example,dc=jp adding new entry: cn=Print Operators,ou=Group,dc=example,dc=jp adding new entry: cn=Backup Operators,ou=Group,dc=example,dc=jp adding new entry: cn=Replicators,ou=Group,dc=example,dc=jp entry sambaDomainName=HOGE,dc=example,dc=jp already exist. Updating it... Please provide a password for the domain root: Changing UNIX and samba passwords for root New password: (root用パスワードを入力) Retype new password: (root用パスワードを再入力)
6. ユーザーアカウントの追加
ここまで設定することで、smbldap-toolsによるユーザーアカウントの管理が可能になる。試しに sambatest ユーザーを追加してみる。
[root@localhost ~]# smbldap-groupadd -a sambatest [root@localhost ~]# smbldap-useradd -a -g sambatest sambatest [root@localhost ~]# smbldap-passwd sambatest New password: (sambatestユーザー用のパスワードを入力) Retype new password: (sambatestユーザー用のパスワードを再入力)
Windowsクライアントからマイネットワークを開き、作成したユーザーでアクセスできることを確認する。
7. ユーザーアカウントの削除
ユーザーの削除は以下のコマンドで可能。
[root@localhost ~]# smbldap-userdel sambatest [root@localhost ~]# smbldap-groupdel sambatest
8.おまけ
今回紹介した以外にも、smbldap-tools にはいくつコマンドが用意されている。
[root@localhost ~]# ls /usr/sbin | grep smbldap- smbldap-groupadd smbldap-groupdel smbldap-groupmod smbldap-groupshow smbldap-passwd smbldap-populate smbldap-useradd smbldap-userdel smbldap-userinfo smbldap-userlist smbldap-usermod smbldap-usershow
それぞれ "man コマンド名" でマニュアルが参照できるので、興味がある人は読んでみるのもいいかもしれない。