最新 追記

だめだめ日記

ツッコミの内容は検索サイトからの検索やサイトのレーティングに影響します。そのため問題があるキーワードを含むと思われるツッコミについては、当方の判断で削除することがあります。予めご了承ください。 なお、コメントspamと判断されたツッコミは自動的に消去されます。ご容赦ください。
2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|05|06|09|10|11|12|
2013|01|02|02|03|08|09|
2014|01|
2015|09|10|11|
2016|01|04|

執筆、翻訳などに関わった書籍類


Linux教科書
LPICレベル3 300試験

マスタリング Nginx

実践 パケット解析 第2版

改訂版 Sambaのすべて

Samba [実践]入門

アンドキュメンテッド
Microsoftネットワーク

その他の書籍は だめだめ日記のおみせ@本店でどうぞ。



2014年01月06日 [長年日記]

[Samba] Samba 4.0 の DC 上における UID/GID 同期

超久々ですが、ちょっと調べたので、更新してみました。

Samba 4.0で構築したActive Directoryのドメインコントローラでは、強制的に Winbind 機構が有効になり、デフォルトでは、次のように 3,000,000 台の UID/GID と自動生成されたシェル、ホームディレクトリが構成されます。

monyo@wheezy64-1:~$ getent passwd
root:x:0:0:root:/root:/bin/bash

...

SAMBA41AD1\Administrator:*:0:10000::/home/%U:/bin/false
SAMBA41AD1\Guest:*:3000011:3000012::/home/%U:/bin/false
SAMBA41AD1\krbtgt:*:3000020:3000011::/home/%U:/bin/false
SAMBA41AD1\samba01:*:3000022:300011:samba 01:/home/%U:/bin/false

Active DirectoryのUNIX属性に値を設定しても、標準では上記のUIDやGIDには反映されません。

これについて、Samba 4.1.0以降?(4.1.3で確認)では、smb.confで

idmap_ldb:use rfc2307 = yes

を設定することにより、UIDとGIDについては、UNIX属性の値が反映されるようになります。しかし、シェルとホームディレクトリの値は依然として反映されません。

Sambaのメーリングリストを見る限り、上記についてはSamba3のWinbind機構のコードをマージする作業を行えば結果として対応されるはずなので、個別に対応はしないという方針のようです。

ということで、現状Samba4のDC上で、UNIX属性のシェルやホームディレクトリの値をユーザ情報として利用したい場合は、SambaのWinbind機構を使うことができません。

Samba のメーリングリストをみると、sssd と連携させるのが基本のようだったので、試してみました。 とりあえず Local user management and authentication/sssdにある3.1 Method 1: Connecting to AD via Kerberos (recommended) の通りに構成してみて、うまくいくことを確認しています。

monyo@wheezy64-1:~$ getent passwd
root:x:0:0:root:/root:/bin/bash

...

messagebus:x:103:104::/var/run/dbus:/bin/false
samba01:*:10000:10000:samba 01:/home/samba01:/bin/bash

のように、UID、GIDに加え、シェルとホームディレクトリの値も反映されています。

ちなみに、Winbind 機構を用いると

SAMBA41AD1\Administrator:*:0:10000::/home/%U:/bin/false
SAMBA41AD1\Guest:*:3000011:3000012::/home/%U:/bin/false
SAMBA41AD1\krbtgt:*:3000020:10000::/home/%U:/bin/false
SAMBA41AD1\samba01:*:10000:10000:samba 01:/home/%U:/bin/false

のように、

  • UNIX属性の有無にかかわらず、すべてのユーザが列挙される
  • UIDとGIDはUNIX属性の値が設定されていれば、それが反映されるが、シェルとホームディレクトリは反映されない

となります。なお、UNIX属性をAD上で変更した場合、デフォルトではキャッシュされている関係上、UNIX側に変更が反映されるまで、少しタイムラグがありました。


2014年01月13日 [長年日記]

[Samba]Samba4のWINS設定

Samba4ではsamba4winsの設定が統合されているという話をみて、試してみました。

結論としては、確かに機能が統合されていることを確認しました。以下手順などを。

WINS機能の有効化

WINS機能の有効化自体は、従来からの

wins support = yes

で行います。単独のWINSサーバとして機能させるだけであれば、従来同様これだけで機能します。

複製の設定

WINS複製パートナーの設定を行います。まずは以下のような内容のファイル(仮にwinspartner.txt)を用意します。

dn: CN=W2K8SRV1,CN=PARTNERS
objectClass: wreplPartner
address: 192.168.135.111

IPアドレスとCN=W2K8SRV1となっているサーバ名は、適切な値にしてください。

ついで次のようにして設定を行います。

# cat winspartner.txt | ldbadd -H /usr/local/samba/private/wins_config.ldb -a
Added 1 records successfully

なお、今後設定を変更したい場合は、

# ldbedit -H /usr/local/samba/private/wins_config.ldb -a

のようにすることで変更が可能です。複製パートナーとなるサーバがSamba4の場合は同様の設定を行ってください。

複製パートナーとなるサーバがWindowsサーバの場合は、先にSamba4サーバを起動したうえで、通常通りの設定を行います。

実際にプッシュ、プルを行ったうえで、複製されていることを確認してみてください。ファイアウォールなどで遮断されていなければ、複製が成功しているはずです。

Samba4サーバ上では、次のようにすることでエントリを確認できます。

# /usr/local/samba/bin/ldbsearch -H /usr/local/samba/var/locks/wins.ldb
# record 1
dn: name=WHEEZY64-1,type=0x03
isStatic: 0
name: WHEEZY64-1
nodeType: 2
objectClass: winsRecord
recordState: 0
recordType: 3
registeredBy: 192.168.135.51
type: 0x03
versionID: 8
winsOwner: 192.168.135.51
expireTime: 20140116003846.0Z
address: 192.168.135.51;winsOwner:192.168.135.51;expireTime:20140116003846.0Z;
distinguishedName: name=WHEEZY64-1,type=0x03

...

Copyright (C) 2003-2015 TAKAHASHI, Motonobu
webmaster@monyo.com