Microserver に CentOS 7 を入れてファイルサーバとして使えるようにした。その時に Samba でアクセスできるようにしたかったのだが、LDAP サーバはすでに別のサーバで動かしている。 「Samba LDAP」 とかで調べると、LDAP が動いているサーバで Samba も動かす方法が書いてあったりしてなかなか欲しい情報に辿りつけない。しかも、Samba は Windows の認証の機能(ドメインコントローラとかいうそうな)もあるようで、Active Directory 関連の情報も出てきたりしてさらにわけがわからなくなってくる。つまりはググラビリティが低い。
このサイトやこのサイトがかなり参考になる。設定をスムーズに行うために理解しなければならないのは、以下の点と思う。
- Samba の認証を LDAP で行うためには、Samba の認証に使う情報を LDAP の各ユーザのエントリに持たせる必要があり、そのためにスキーマの追加が必要。
- Samba パスワードを pbdedit や smbpasswd コマンドで変更できるようにするためには、自分の LDAP アカウントを書き換えられるように LDAP サーバのアクセス制御をしておく必要がある。
- Unix アカウントのパスワードと、Samba のパスワードは LDAP においては別の Attribute として保持される。Unix アカウントのパスワードと、Samba パスワードを同期させるためには、/etc/smb.conf で
ldap passwd sync = yes
とすればよいが、これは Samba からパスワードを変更した時に Unix アカウントのパスワードも変更するというものであって、その逆をすると(つまり passwd コマンド等で Unix アカウントのパスワードを変えると)別々のパスワードが設定されることになる。
- CentOS 7 でも
yum install samba-client
とすれば smbpasswd コマンドを使うことができる。
それにしてもディレクトリサービスは複雑すぎる。できることが多いのはわかるけど、もっと扱い易くないと簡単にわけわからんくなってしまうよ。