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に格納されます。
{{#invoke:Message box|imbox}}
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サービスを再起動します。
{{#invoke:Message box|imbox}}
Libnss winbindリンク
https://wiki.samba.org/index.php/Libnss_winbind_Links
Sambaを自身でコンパイルした場合、ホストがWinbindを使用して、ドメインから、ユーザーとグループの情報を受け取れるようにするには、オペレーションシステムのライブラリパスのディレクトリに、2つのシンボリックリンクを作成する必要があります。ディストリビューションのパッケージからSambaを使用している場合は、Debianのlibpam-winbind と libnss-winbindのように、通常、これを行うためのディストリビューションのパッケージがあります。
{{#invoke:Message box|imbox}}
プラットフォームの決定
オペレーティングシステムのプラットフォームを確認するには:
# 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のインストールにパッケージを使用した場合は、リンクは自動的に作成されます。
- 両方のデータベースの最初のソースとして
{{#invoke:Message box|imbox}}
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を利用したドメインユーザーの認証