昔挫折したwinbindによるメンバーサーバを作ってみる。
内容はsssdによるメンバーサーバ作成と同じです。連携方法がwinbinddにした場合のお話

2015y10m10d_232400233.png

メンバーサーバの準備

winbindによるメンバーサーバ作成だからと言って特段な事はなく、CentOSらを参考にOSをインストールします。

ホスト名IPアドレスOS参照DNS参照NTP
n2.sybyl.local192.168.0.53CentOS7c.sybyl.localc.sybyl.local

/etc/hostsファイルは、自身のアドレスのみで可

[root@n2 ~]# cat /etc/hosts
127.0.0.1     localhost.localdomain localhost
192.168.0.53  n2.sybyl.local        n2
[root@n2 ~]#

そしてドメイン参加に必要なパッケージをインストールする

[root@n2 ~]# yum install samba-common samba-winbind

Domain UsersへのGID付与

ドメインコントローラの sybyl\Domain Users にGIDを付与します。これがないとどうも無理みたい。
付与の方法はsamba/リモートサーバ管理ツールの「Active Directoryユーザとコンピュータ」を起動させ
「Domain Usersのプロパティ」を開く
2015y10m11d_004024285.png
NISドメイン欄は<なし>が置かれ、GIDは未定義のままである。この状態から、NISドメインをプルダウンから選べる「sybyl」、GIDの値は何でもいいですが、ここでは3000にしてます。
2015y10m11d_004304365.png
これで「OK」ボタンを押下する。

sybylドメインへの参加

メンバーサーバの /etc/samba/smb.conf を調整して、
/etc/samba/smb.conf は samba-common パッケージに含まれている

[root@n2 ~]# cat << _EOT_ > /etc/samba/smb.conf
[global]
  workgroup = SYBYL
  security = ADS
  realm = SYBYL.LOCAL
  password server = c.sybyl.local
  idmap config SYBYL:backend = ad
  idmap config SYBYL:schema_mode = rfc2307
  idmap config SYBYL:range = 1000-30000
  idmap config *:range = 30001-30010
  idmap config *:backend = tdb
  winbind nss info = rfc2307
  winbind use default domain = true
_EOT_
[root@n2 ~]#

net コマンドを使って sybyl ドメインに参加します。

[root@n2 ~]# net ads join osName=CentOS osVer=7.1 -Uadministrator
Enter administrator's password:
Using short domain name -- SYBYL
Joined 'N2' to dns domain 'sybyl.local'
[root@n2 ~]#

参加完了後、ユーザ情報参照先と認証情報参照先を変更して、winbinddを起動させます。

[root@n2 ~]# authconfig --enablewinbind --enablewinbindauth --update
[root@n2 ~]# systemctl enable winbind && systemctl start winbind

そしてテスト。「getent passwd | grep illya」では表示されません。「getent passwd illya」でないと表示されない

[root@n2 ~]# getent passwd illya
illya:*:1002:3000:Illyasviel von Einzbern:/home/illya:/bin/bash
[root@n2 ~]#

留意 事前にドメインコントローラの sybyl\Domain Users にGIDを割り当てることが必須です。
これを行わないで、ドメイン参加(net ads join)するとドメインコントローラのユーザ情報は拾えないです。
もしドメイン参加後なら、find /var/lib/samba -type f -exec rm -rf {} \; にて関連ファイルを削除してから再びドメイン参加しましょう。

winbind経由でDomainControllerへログインする場合

ドメインコントローラ自身へのログインも winbind 経由で行うには。
最も簡単な方法は、smb.conf を下記の様にtemplate homedirtemplate shellを加えて、sambaを再起動します。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
[root@c ~]# vi /opt/samba/etc/smb.conf
# Global parameters
[global]
        workgroup = SYBYL
        realm = SYBYL.LOCAL
        netbios name = C
        server role = active directory domain controller
        dns forwarder = 192.168.0.1
        password server = c.sybyl.local
        idmap_ldb:use rfc2307 = yes
 
        template homedir = /home/%D/%U
        template shell = /bin/bash
 
(略)
[root@c ~]#

その後、ドメインコントローラのユーザ情報参照先と認証情報参照先をwinbindに変更します。

[root@c ~]# authconfig --enablewinbind --enablewinbindauth --update

これでwinbind経由でドメインコントローラもログインできますが、
ユーザ作成時に使用した samba-tool の --unix-home(ホームディレクトリ)及び--login-shell(シェル)は反映されない。
smb.confで定義した値(template homedirtemplate shell)が、全ユーザに適用されます(ドメインコントローラのみだけど)。

あと、getent passwdコマンドではユーザが表示されなく、ユーザ名を入れて初めて表示される

[root@c ~]# getent passwd | grep illya
[root@c ~]#
[root@c ~]# getent passwd illya
illya:*:1002:100:Illyasviel von. Einzbern:/home/SYBYL/illya:/bin/bash
[root@c ~]#

ホームディレクトリの指定は smb.conf で template homedir = /home/%U とすれば /home/illya となりますが、
shellの指定が全ユーザ固定はちょいと困る...

メンバーサーバと同じようなsmb.conf設定にすれば、ユーザ作成時のホームディレクトリやシェルが使えるかと思うのだが、試しても駄目だった。ドメインコントローラに限ってはsssdによる方法がいいのかも知れない。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2015-10-11 (日) 15:35:00 (678d)