「Samba AD DC上でのWinbinddの設定」の版間の差分

提供: 雑廉堂Wiki
(Sambaドメインコントローラ上でのIDマッピング)
 
(同じ利用者による、間の21版が非表示)
1行目: 1行目:
== はじめに ==
+
= はじめに =
  
 
<code>Winbindd</code>サービスを使用すると、次のことが可能になります。
 
<code>Winbindd</code>サービスを使用すると、次のことが可能になります。
6行目: 6行目:
 
* <code>ls</code> コマンド等で、ドメインユーザやグループを表示できます。
 
* <code>ls</code> コマンド等で、ドメインユーザやグループを表示できます。
  
Samba アクティブディレクトリ(AD)ドメインコントローラ(DC)での<code>Winbindd</code>の構成は、ドメインメンバの場合とは異なります。ドメインメンバとしてサービスを設定するには、「 [[Sambaをドメインメンバとして構成する]] 」を参照して下さい。
+
Samba アクティブディレクトリ(AD)ドメインコントローラ(DC)での<code>Winbindd</code>の構成は、ドメインメンバの場合とは異なります。ドメインメンバとしてサービスを設定するには、[[Sambaをドメインメンバとして構成する]] を参照して下さい。
  
  
== Winbind と Winbinddサービスとの違い ==
+
== Winbind と Winbinddサービスとの違い==
  
 
Samba 4.0と4.1は、<code>samba</code>コマンドに組み込まれた新しい<code>Winbind</code>実装を使用していました。 しかし、この実装は正
 
Samba 4.0と4.1は、<code>samba</code>コマンドに組み込まれた新しい<code>Winbind</code>実装を使用していました。 しかし、この実装は正
 
しく機能しませんでした。 このため、Samba 4.2では<code>winbindd</code>ユーティリティをドメインコントローラ(DC)で使用することがで
 
しく機能しませんでした。 このため、Samba 4.2では<code>winbindd</code>ユーティリティをドメインコントローラ(DC)で使用することがで
 
きました。 Samba 4.2よりも前のSambaを実行している場合、<code>Winbindd</code>を使用する前に、サポートされているバージョンに更新してください。 詳細は、「[[Sambaの更新]]」を参照してください。
 
きました。 Samba 4.2よりも前のSambaを実行している場合、<code>Winbindd</code>を使用する前に、サポートされているバージョンに更新してください。 詳細は、「[[Sambaの更新]]」を参照してください。
 +
  
 
== Sambaドメインコントローラ上でのIDマッピング ==
 
== Sambaドメインコントローラ上でのIDマッピング ==
  
IDマッピングは、Samba ドメインコントローラ(DC)では、ドメインメンバの場合とは異なる動作をします。例えば、<code>smb.conf</code> ファイルで<code>ad</code>(rfc2307)や<code>rid</code>などのIDマッピングバックエンドを構成することはサポートされていないため、<code>samba</code>サービスが失敗する可能性があります。詳細については「[[Sambaの更新#idmap configパラメータがsmb.confファイルで設定されているとドメインコントローラ上の共有にアクセスできない]]」を参照して下さい
+
IDマッピングは、Samba ドメインコントローラ(DC)では、ドメインメンバの場合とは異なる動作をします。例えば、<code>smb.conf</code> ファイルで<code>ad</code>(rfc2307)や<code>rid</code>などのIDマッピングバックエンドを構成することはサポートされていないため、<code>samba</code>サービスが失敗する可能性があります。詳細については「[[Sambaの更新#idmap configパラメータがsmb.confファイルで設定されているとドメインコントローラ上の共有にアクセスできない|idmap configパラメータがsmb.confファイルで設定されているとドメインコントローラ上の共有にアクセスできない]]」を参照して下さい
  
 
SambaアクティブディレクトリDCでは、<code>Winbindd</code>は常にユーザID(<code>UID</code>)およびグループID(<code>GID</code>)を、ADオブジェクトに設定された<code>uidNumber</code>および<code>gidNumber</code>属性で設定された値から、読み取ります。<code>UID</code>または<code>GID</code>が割りあてられていないユーザ、及びグループの場合、IDはDC上でローカルに作成され、<code>/usr/local/samba/private/idmap.ldb</code>に格納されます。
 
SambaアクティブディレクトリDCでは、<code>Winbindd</code>は常にユーザID(<code>UID</code>)およびグループID(<code>GID</code>)を、ADオブジェクトに設定された<code>uidNumber</code>および<code>gidNumber</code>属性で設定された値から、読み取ります。<code>UID</code>または<code>GID</code>が割りあてられていないユーザ、及びグループの場合、IDはDC上でローカルに作成され、<code>/usr/local/samba/private/idmap.ldb</code>に格納されます。
  
<WRAP important 100%> ローカルIDが生成された後にADオブジェクトのプロパティにIDを設定すると、Winbinddはwinbinddのキャッシュの有効期限が切れた後、または<code>net cache flush</code>を手動で実行した後にディレクトリの値を使用します。
+
{{imbox
 +
| style = margin:4px 2%;
 +
| text  = ローカルIDが生成された後にADオブジェクトのプロパティにIDを設定すると、Winbinddはwinbinddのキャッシュの有効期限が切れた後、または<code>net cache flush</code>を手動で実行した後にディレクトリの値を使用します。
 +
オペレーティングシステムは、IDを使用してファイルの所有権を管理します。ユーザーが新しいIDを使用してファイルにアクセスできるように、ファイルのアクセス許可を手動でリセットする必要があります。
 +
}}
  
オペレーティングシステムは、IDを使用してファイルの所有権を管理します。ユーザーが新しいIDを使用してファイルにアクセスできるように、ファイルのアクセス許可を手動でリセットする必要があります。 </WRAP>
 
  
== smb.confファイルでのWinbinddパラメータの設定 ==
+
= smb.confファイルでの<code>Winbindd</code>パラメータの設定 =
  
 
Samba Active Directory(AD)ドメインコントローラ(DC)上で<code>Winbindd</code>を実行するには、ほとんどの場合、<code>smb.conf</code>ファイルの設定は必要ありません。
 
Samba Active Directory(AD)ドメインコントローラ(DC)上で<code>Winbindd</code>を実行するには、ほとんどの場合、<code>smb.conf</code>ファイルの設定は必要ありません。
47行目: 51行目:
 
* sambaサービスを再起動します。
 
* sambaサービスを再起動します。
  
<WRAP important 100%> Samba AD DCでは、<code>smb.conf(5)</code>のマニュアルページに記載されているすべての<code>Winbindd</code>関連パラメータがサポートされているわけではありません。さらに、<code>idmap config</code>などの一部のパラメータでは、<code>samba</code>サービスが失敗する可能性があります。現在、マニュアルページでは、DCでサポートされているパラメータは強調表示されていません。したが
+
{{imbox
って、デフォルトを維持するか、このセクションで説明するパラメータのみを使用することをお勧めします。 </WRAP>
+
| type  = speedy
 +
| style = margin: 4px 2%;
 +
| text  = Samba AD DCでは、<code>smb.conf(5)</code>のマニュアルページに記載されているすべての<code>Winbindd</code>関連パラメータがサポートされているわけではありません。さらに、<code>idmap config</code>などの一部のパラメータでは、<code>samba</code>サービスが失敗する可能性があります。現在、マニュアルページでは、DCでサポートされているパラメータは強調表示されていません。したがって、デフォルトを維持するか、このセクションで説明するパラメータのみを使用することをお勧めします。
 +
}}
 +
 
 +
= Libnss winbindリンク =
 +
 
 +
{{:Libnss_winbind_リンク}}
 +
 
 +
= ネームサービススイッチの設定 =
 +
 
 +
ネームサービススイッチ(NSS)ライブラリを有効にして、ドメインユーザとグループをローカルシステムで使用できるようにするには:
 +
 
 +
* <code>/etc/nsswitch.conf</code>ファイルの次のデータベースに<code>winbind</code>エントリを追加します。
 +
 
 +
passwd: files <u>winbind</u>
 +
group:  files <u>winbind</u>
 +
 
 +
:* 両方のデータベースの最初のソースとして<code>files</code>エントリを保持します。 これにより、NSSはWinbindサービスを照会する前に<code>/etc/passwd</code>および<code>/etc/group</code>ファイルからドメインユーザーとグループを検索できます。
 +
:* <code>winbind</code>エントリをNSS <code>shadow</code>データベースに追加しないでください。 これにより、<code>wbinfo</code>ユーティリティが失敗する可能性があります。
 +
:* Sambaをコンパイルした場合、<code>libnss_winbind</code>ライブラリからOSのシステムライブラリパスにシンボリックリンクを追加してください。詳細は、[[Libnss_winbind_リンク|Libnss winbind リンク]]を参照してください。Sambaのインストールにパッケージを使用した場合は、リンクは自動的に作成されます。
 +
 
 +
{{ imbox
 +
| style = margin:4px 2%;
 +
| text  = ローカルの<code>/etc/passwd</code>ファイルでドメインと同じユーザー名を使用しないでください。
 +
}}
 +
 
 +
= winbinddサービス =
 +
 
 +
Samba Active Directory(AD)ドメインコントローラ(DC)で<code>winbindd</code>サービスを手動で起動しないでください。 このサービスは、<code>samba</code>プロセスのサブプロセスとして自動的に開始されます。 確認するには、次を入力します。
 +
 
 +
<pre># 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
 +
...</pre>
 +
 
 +
 
 +
= Winbindd接続のテスト =
 +
[[Sambaをドメインメンバーとして設定#Winbindへの接続を確認|Winbindへの接続を確認]]を参照。
 +
 
 +
= PAMを利用したドメインユーザーの認証 =
 +
 
 +
[[PAMを使用したドメインユーザーの認証]]を参照。
 +
 
 +
 
 +
 
 +
 
 +
 
 +
----
 +
[[Category:Active Directory]]

2019年3月9日 (土) 16:33時点における最新版

はじめに

Winbinddサービスを使用すると、次のことが可能になります。

  • chownchgrp などのローカルコマンドでドメインユーザやドメイングループを使用できます。
  • 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に格納されます。


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サービスを再起動します。

Libnss winbindリンク

https://wiki.samba.org/index.php/Libnss_winbind_Links


Sambaを自身でコンパイルした場合、ホストがWinbindを使用して、ドメインから、ユーザーとグループの情報を受け取れるようにするには、オペレーションシステムのライブラリパスのディレクトリに、2つのシンボリックリンクを作成する必要があります。ディストリビューションのパッケージからSambaを使用している場合は、Debianのlibpam-winbind と libnss-winbindのように、通常、これを行うためのディストリビューションのパッケージがあります。

プラットフォームの決定

オペレーティングシステムのプラットフォームを確認するには:

# 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エントリをNSS shadowデータベースに追加しないでください。 これにより、wbinfoユーティリティが失敗する可能性があります。
  • Sambaをコンパイルした場合、libnss_winbindライブラリからOSのシステムライブラリパスにシンボリックリンクを追加してください。詳細は、Libnss winbind リンクを参照してください。Sambaのインストールにパッケージを使用した場合は、リンクは自動的に作成されます。

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を利用したドメインユーザーの認証

PAMを使用したドメインユーザーの認証を参照。