Samba AD DC上でのWinbinddの設定
目次
はじめに
Winbindd
サービスを使用すると、次のことが可能になります。
chown
やchgrp
などのローカルコマンドでドメインユーザやドメイングループを使用できます。ls
コマンド等で、ドメインユーザやグループを表示できます。
Samba アクティブディレクトリ(AD)ドメインコントローラ(DC)でのWinbindd
の構成は、ドメインメンバの場合とは異なります。ドメインメンバとしてサービスを設定するには、Sambaをドメインメンバとして構成する を参照して下さい。
Winbind と Winbinddサービスとの違い=
Samba 4.0と4.1は、samba
コマンドに組み込まれた新しいWinbind
実装を使用していました。 しかし、この実装は正
しく機能しませんでした。 このため、Samba 4.2ではwinbindd
ユーティリティをドメインコントローラ(DC)で使用することがで
きました。 Samba 4.2よりも前のSambaを実行している場合、Winbindd
を使用する前に、サポートされているバージョンに更新してください。 詳細は、「Sambaの更新」を参照してください。
Sambaドメインコントローラ上でのIDマッピング
IDマッピングは、Samba ドメインコントローラ(DC)では、ドメインメンバの場合とは異なる動作をします。例えば、smb.conf
ファイルでad
(rfc2307)やrid
などのIDマッピングバックエンドを構成することはサポートされていないため、samba
サービスが失敗する可能性があります。詳細については「idmap configパラメータがsmb.confファイルで設定されているとドメインコントローラ上の共有にアクセスできない」を参照して下さい
SambaアクティブディレクトリDCでは、Winbindd
は常にユーザID(UID
)およびグループID(GID
)を、ADオブジェクトに設定されたuidNumber
およびgidNumber
属性で設定された値から、読み取ります。UID
またはGID
が割りあてられていないユーザ、及びグループの場合、IDはDC上でローカルに作成され、/usr/local/samba/private/idmap.ldb
に格納されます。
ローカルIDが生成された後にADオブジェクトのプロパティにIDを設定すると、Winbinddはwinbinddのキャッシュの有効期限が切れた後、またはnet cache flush を手動で実行した後にディレクトリの値を使用します。
オペレーティングシステムは、IDを使用してファイルの所有権を管理します。ユーザーが新しいIDを使用してファイルにアクセスできるように、ファイルのアクセス許可を手動でリセットする必要があります。 |
smb.confファイルでのWinbindd
パラメータの設定
Samba Active Directory(AD)ドメインコントローラ(DC)上でWinbindd
を実行するには、ほとんどの場合、smb.conf
ファイルの設定は必要ありません。
ユーザーIDとグループIDは、Active Directory(AD)からロードされるか、ローカルで自動的に生成されます。詳細については、「Sambaドメインコントローラ上でのIDマッピング」を参照してください。
Samba DCでは、winbindテンプレートモードのみがサポートされています。このモードでは、すべてのユーザーが以下を取得します。
- 割り当てられたホームディレクトリパス。
template homedir
パラメータで設定します。このパラメータのデフォルト値は/home/%D/%U
です。 - 割り当てられたシェル。
template shell
パラメーターで設定します。このパラメータのデフォルト値は/bin/false
です。
Winbindd
が提供するすべてのドメインユーザーにログオンシェルとして/bin/bash
と、ホームディレクトリパスとし
て /home/%U
を割り当てるには:
smb.conf
ファイルの[global]
セクションに次のパラメータを追加します。
template shell = /bin/bash template homedir = /home/%U
詳細は、smb.conf(5)
のマニュアルページを参照してください。
- sambaサービスを再起動します。
Samba AD DCでは、smb.conf(5) のマニュアルページに記載されているすべてのWinbindd 関連パラメータがサポートされているわけではありません。さらに、idmap config などの一部のパラメータでは、samba サービスが失敗する可能性があります。現在、マニュアルページでは、DCでサポートされているパラメータは強調表示されていません。したがって、デフォルトを維持するか、このセクションで説明するパラメータのみを使用することをお勧めします。 |
Libnss winbindリンク
https://wiki.samba.org/index.php/Libnss_winbind_Links
Sambaを自身でコンパイルした場合、ホストがWinbindを使用して、ドメインから、ユーザーとグループの情報を受け取れるようにするには、オペレーションシステムのライブラリパスのディレクトリに、2つのシンボリックリンクを作成する必要があります。ディストリビューションのパッケージからSambaを使用している場合は、Debianのlibpam-winbind と libnss-winbindのように、通常、これを行うためのディストリビューションのパッケージがあります。
ライブラリをディレクトリにコピーしないでください。Sambaの更新の度に入れ替えなければいけなくなります。 |
プラットフォームの決定
オペレーティングシステムのプラットフォームを確認するには:
# uname -m
libnss_winbind.so.2
ライブラリの場所を探す
libnss_winbind.so.2
は、コンパイル時にSambaのライブラリディレクトリにインストールされています。検索するには:
# smbd -b | grep LIBDIR LIBDIR: /usr/local/samba/lib/
このディレクトリから、オペレーティングシステムのライブラリパスへリンクしてください。
オペレーティングシステム固有の例
Red Hat ベースのオペレーティングシステム
x86_64
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/ # ln -s /lib64/libnss_winbind.so.2 /lib64/libnss_winbind.so # ldconfig
i686
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/ # ln -s /lib/libnss_winbind.so.2 /lib/libnss_winbind.so # ldconfig
Debian ベースのオペレーティングシステム
x86_64
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/x86_64-linux-gnu/ # ln -s /lib/x86_64-linux-gnu/libnss_winbind.so.2 /lib/x86_64-linux-gnu/libnss_winbind.so # ldconfig
i686
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/i386-linux-gnu/ # ln -s /lib/i386-linux-gnu/libnss_winbind.so.2 /lib/i386-linux-gnu/libnss_winbind.so # ldconfig
ARM
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/arm-linux-gnueabihf/ # ln -s /lib/arm-linux-gnueabihf/libnss_winbind.so.2 /lib/arm-linux-gnueabihf/libnss_winbind.so # ldconfig
SUSE ベースのオペレーティングシステム
x86_64
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib64/ # ln -s /lib64/libnss_winbind.so.2 /lib64/libnss_winbind.so # ldconfig
i686
# ln -s /usr/local/samba/lib/libnss_winbind.so.2 /lib/ # ln -s /lib/libnss_winbind.so.2 /lib/libnss_winbind.so # ldconfig
ネームサービススイッチの設定
ネームサービススイッチ(NSS)ライブラリを有効にして、ドメインユーザとグループをローカルシステムで使用できるようにするには:
/etc/nsswitch.conf
ファイルの次のデータベースにwinbind
エントリを追加します。
passwd: files winbind group: files winbind
- 両方のデータベースの最初のソースとして
files
エントリを保持します。 これにより、NSSはWinbindサービスを照会する前に/etc/passwd
および/etc/group
ファイルからドメインユーザーとグループを検索できます。 winbind
エントリをNSSshadow
データベースに追加しないでください。 これにより、wbinfo
ユーティリティが失敗する可能性があります。- Sambaをコンパイルした場合、
libnss_winbind
ライブラリからOSのシステムライブラリパスにシンボリックリンクを追加してください。詳細は、Libnss winbind リンクを参照してください。Sambaのインストールにパッケージを使用した場合は、リンクは自動的に作成されます。
- 両方のデータベースの最初のソースとして
ローカルの/etc/passwd ファイルでドメインと同じユーザー名を使用しないでください。 |
winbinddサービス
Samba Active Directory(AD)ドメインコントローラ(DC)でwinbindd
サービスを手動で起動しないでください。 このサービスは、samba
プロセスのサブプロセスとして自動的に開始されます。 確認するには、次を入力します。
# ps axf ... 2156 ? Ss 0:00 /usr/local/samba/sbin/samba -D 2158 ? S 0:00 \_ /usr/local/samba/sbin/samba -D 2172 ? R 0:00 \_ /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground ...
Winbindd接続のテスト
Winbindへの接続を確認を参照。
PAMを利用したドメインユーザーの認証