Samba+OpenLDAP(PDC) を運用したときのユーザーの登録について記載します。
まず先に結論から申し上げると作成済みのユーザー(Linuxアカウント)に Samba+OpenLDAP(PDC) のドメインにログオンできるようにするには、下記の2つのコマンドを実行する必要があります。
(前提条件として下記が設定済みである)
・Samba および OpenLDAPがPDC対応で正しくインストールされている。
・作成済みのユーザー(Linuxアカウント)がldapaddコマンド等でLDAPに登録済み。
・ログオンするPCのコンピュータ名が smbldap-useradd -w <コンピュータ名> で登録済み
[root@hoge ~]# smbldap-usermod -a <作成済みLinuxアカウント>
[root@hoge ~]# smbldap-passwd <作成済みLinuxアカウント>
今回は、Linuxユーザーとして作成済みのユーザーをSamba+OpenLDAP(PDC)のユーザーとして登録(再設定するための方法)記載します。
※基本的な設定については、別途記載することにします。
■変更前の設定内容■
[root@hoge ~]# smbldap-usershow pelo
dn: uid=pelo,ou=Users,dc=hogehoge,dc=com
uid: pelo
cn: pelo
objectClass: account,posixAccount,top
userPassword: {SSHA}*******************************
loginShell: /bin/bash
uidNumber: 3002
gidNumber: 3002
homeDirectory: /home/pelo
[root@hoge ~]#
Windowsクライアントからログインできるユーザーは下記のようになっています。
比較すると、samba専用のアトリビュートが作成されていないことがわかります。
[root@hoge ~]# smbldap-usershow knownuser
dn: uid=knownuser,ou=Users,dc=hogehoge,dc=com
uid: knownuser
cn: knownuser
objectClass: account,posixAccount,top,shadowAccount,sambaSamAccount
shadowMin: 0
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/knownuser
gecos: Known User
shadowLastChange: 15462
shadowMax: 45
sambaSID: S-1-5-21-2725434548-1602857623-2035637331-1001
displayName: Known User
userPassword: {SSHA}*******************************
sambaNTPassword: *******************************
sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000
sambaPwdLastSet: 1335947382
sambaAcctFlags: [U ]
[root@hoge ~]#
既に作成済みのユーザーについてsamba専用のアトリビュート情報の追加を行うには、smbldap-usermod の -a オプションで実行する必要があることがわかりました。
善は急げで、早速実行します。
[root@hoge ~]# smbldap-usermod -a pelo
Warning: sambaPrimaryGroupSID could not be set beacuse group of user pelo is not a mapped Domain group!
To get a list of groups mapped to Domain groups, use "net groupmap list" on a Domain member machine.
Use of uninitialized value in string at /usr/sbin/smbldap-usermod line 346.
Use of uninitialized value in string eq at /usr/sbin/smbldap-usermod line 347.
Use of uninitialized value in string eq at /usr/sbin/smbldap-usermod line 347.
Use of uninitialized value in string eq at /usr/sbin/smbldap-usermod line 347.
Use of uninitialized value in concatenation (.) or string at /usr/sbin/smbldap-usermod line 347.
[root@hoge ~]#
アレレ?。
何やら、嫌らしいエラーメッセージが表示されてしまいました。
usr/sbin/smbldap-usermod の346行目と347行目を確認しましたが、影響なさそうなので無視して先へ進むことにします。
$cn = "$Options{'N'}";
$cn .= " " . $Options{'S'}
smbldap-usermodコマンドの実施後に内容が変わったかどうかを検証します。
[root@hoge ~]# smbldap-usershow pelo
dn: uid=pelo,ou=Users,dc=hogehoge,dc=com
uid: pelo
objectClass: account,posixAccount,top,shadowAccount,sambaSamAccount
userPassword: {SSHA}zrb5IhKHtVErK8rdx/e0pqtG4kJ0ES29
shadowLastChange: 15476
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 3002
gidNumber: 3002
homeDirectory: /home/pelo
sambaPwdLastSet: 0
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 2147483647
sambaSID: S-1-5-21-2725434548-1602857623-2035637331-7004
sambaAcctFlags: [UX]
cn:
displayName:
[root@hoge ~]#
上記の赤字と青字の部分が追加されていることを確認できます。
しかし、青字のアトリビュートは未設定のようです。
cn は氏名(Common Name)を設定するアトリビュートで、displayName もWindowsで利用される氏名を設定するアトリビュートのようです。
→→→ ■OpenLDAPの基本的なアトリビュートについて■
上記の内容でWindows7クライアントからドメインにログオンを行ってもまだエラーになってしまいます。
ログオンできるユーザーとの違いを確認したらsambaのパスワード関連のアトリビュートがないようです。(sambaLMPassword,sambaAcctFlags,sambaNTPassword,,,)
よって、再度パスワードを再設定するコマンド(smbldap-passwd)を実行してパスワードを上書きします。
↓
今度は無事にWindows7クライアントからドメインにログオンできました。
赤字の部分が smbldap-passwd を実行した結果に追加されたアトリビュートです。
[root@hoge ~]# smbldap-usershow pelo
dn: uid=pelo,ou=Users,dc=hogehoge,dc=com
uid: pelo
objectClass: account,posixAccount,top,shadowAccount,sambaSamAccount
shadowMin: 0
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 3002
gidNumber: 3002
homeDirectory: /home/pelo
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaSID: S-1-5-21-2725434548-1602857623-2035637331-7004
cn:
displayName:
sambaLMPassword: *******************************
sambaAcctFlags: [U]
sambaNTPassword: *******************************
sambaPwdLastSet: 1340506248
sambaPwdMustChange: 1344394248
userPassword: {SSHA}*******************************
shadowLastChange: 15515
shadowMax: 45
[root@hoge ~]#