Sambaの更新

提供:雑廉堂Wiki

はじめに

次のドキュメントでは、Sambaを新しいバージョンに更新するプロセスについて説明します。

Samba NT4ドメインをSamba Active Directory(AD)に移行する場合は、Samba NTドメインのSamba ADへの移行(Classicアップグレード)を参照してください。

Samba4についての誤解

{{#invoke:Message box|imbox}}

Active Directory(AD)ドメインコントローラ(DC)サポートは、Samba 4.0で導入された拡張機能の1つです。しかし、すべての新しいバージョンには、以前のバージョンの機能が含まれています。これには、NT4スタイルの(古典的な)ドメインサポートが含まれます。つまり、以前に更新したように、Samba 3.x NT4形式のプライマリドメインコントローラ(PDC)を最新バージョンに更新することができます(たとえば、3.4.xから3.5.xへ)。 NT4形式のドメインをADに移行する必要はありません。

さらに、最近のすべてのバージョンでは、新しいNT4形式のPDCの設定が引き続きサポートされています。 Samba 4.0以降のADサポートはオプションで、PDC機能のいずれかを置き換えるものではありません。 Sambaチームは、既存のLDAP構造によってもたらされる困難を理解しています。そのため、従来のPDCサポートを削除する予定はありません。さらに、継続的な統合システムでPDCサポートのテストを続けます。

更新のプロセス

Samba Active Directory(AD)ドメインコントローラ(DC)、Samba NT4形式のPDC、Sambaドメインメンバ、またはスタンドアロンインストールを更新するかどうかにかかわらず、次の手順を実行します。

  • すべてのSambaサービスを停止します。
  • バックアップを作成します。
  • スキップされたバージョンのリリースノートを読んでください。それらには、新機能、変更されたパラメータ、バグ修正などの重要な情報が含まれています。新しいメジャーリリースに切り替える場合は、初期バージョン(x.y.0)のリリースノートとマイナーバージョンからアップデートする新しいバージョンまでのリリースノートをお読みください。たとえば、4.4.4から4.6.2に更新する場合は、4.5.0,4.6.0,4.6.1、および4.6.2のリリースノートをお読みください。
  • 既存のバージョンに最新バージョンをインストールします。
  • ソースからSambaをコンパイルする場合は、以前のバージョンで使用したのと同じconfigureオプションを使用します。詳細は、「ソースからのSambaのビルド」を参照してください。
  • パッケージを使用して更新する場合、更新方法については、ディストリビューションのドキュメントをお読みください。
  • Sambaを起動します。
以前のバージョンと同じデーモンを起動してください:
  • Samba AD DCについて:samba
  • Samba NT4形式のPDC/BDC:smbdnmbd
  • Sambaドメインメンバ上で:smbdnmbdwinbind、使用されている場合)
  • Sambaのスタンドアロンホストの場合:smbd
  • Samba AD DCのみ:Samba AD DCデータベースチェックを実行します。
  • Sambaのログファイルにエラーがないかどうか確認してください。
  • 更新されたインストールをテストします。

複数のSambaドメインコントローラの更新

複数のSamba Active Directory(AD)ドメインコントローラ(DC)を更新する場合、推奨される順序は次のとおりです。

  • Flexible single master operations(FSMO)の役割を持たないSamba AD DCを1つ更新します。
  • 更新されたDC上でSambaを起動します。
  • すべてのDC間のディレクトリ複製が正しく機能していることを確認します。
#samba-tool drs showrepl
  • インストールをテストして、新しいバージョンが正しく動作することを確認します。
  • 他のすべてのSamba DCを一度に1つずつアップグレードし、常にレプリケーションが正しく機能していることを確認します。

Samba AD DCデータベースチェック

samba-toolユーティリティを使用すると、Samba Active Directory(AD)データベースの問題を検出して修 正できます。たとえば、以前のSambaのバージョンが属性を誤って格納していて、更新されたバージョンが 問題を修正した場合などです。一部の修正は複製されていない属性に適用され、変更が他のDCに複製されな いため、すべてのSamba AD DCでcheckとfixコマンドをローカルで実行する必要があります。

ADデータベースを確認するには、次のコマンドを実行します。

# samba-tool dbcheck --cross-ncs

報告されたエラーを修正するには、

# samba-tool dbcheck --cross-ncs --fix

コマンドに--yesパラメータを渡すと、すべての質問にyesが自動的に返されま す。 --yesパラメータを省略すると、データベースチェックは各オブジェクトに対して3つのfsync() 呼び出しを実行することに注意してください。その結果、実行時間が長くなります。たとえば、テ スト環境では、-yesパラメータを10秒間に3500個のオブジェクトを固定したコマンドに渡します。このパラ メータがないと、コマンドは同じ操作で4:50分必要でした。

修復後、データベースを再確認して、正常な操作を確認します。

注目すべき拡張と変更

Sambaを更新する場合は、前のバージョンと更新するバージョンのリリースノートを必ずお読みください。 これらには、新機能、変更されたパラメータオプションなどに関する重要な追加情報が含まれています。

このセクションでは、以前のバージョンの問題を修正するために注意が必要な重要な変更の概要を示し、パ フォーマンスの低下などを回避します。

すべてのSambaインストールモードに影響する変更

ファイル実行権限

4.0.0以降

以前は、Sambaはファイルの実行ビットをチェックしていませんでした。その結果、xビットが設定されてい ない場合、ユーザーは共有上で* .exeや* .batなどのファイルを実行できます。 Sambaが拡張され、xビッ トが設定されていない場合、ファイルの実行を拒否しました。以前のバージョンからアップグレードする場 合など、実行可能ファイルにxビットがない可能性があります。回避策として、個々の共有または[global] セクションに次のパラメータを設定すると、古い動作を有効にすることができます。

acl allow execute always = yes

Samba Active Directoryドメインコントローラ

ntvfs ファイルサーバーのバックエンドが無効になっています

4.5.0以降

以前は、Sambaを使用して、ntvfsファイルサーバーのバックエンドを使用してドメインコン トローラ(DC)をプロビジョニングすることができました。このバックエンドはサポートされていないため、ntvfs機能はSamba 4.5.0ではデフォルトではビルドされなくなりました。その結果、ntvfsバックエンドを使用してDC上でsambaサービスを開始すると、更新後にエラーが発生し、次のエラーが記録されます。

[2016/09/01 08:00:00.000000,  0, pid=995] ../source4/smbd/service.c:98(server_service_startup)
  Failed to start service 'smb' - NT_STATUS_INVALID_SYSTEM_SERVICE
[2016/09/01 08:00:00.000000,  0, pid=995] ../lib/util/become_daemon.c:111(exit_daemon)
  STATUS=daemon failed to start: Samba failed to start services, error code -1073741796

この問題を解決するには、DC上のファイルサーバーバックエンドをサポートされているs3fs バックエンドに移行します。詳細は、ntvfsファイルサーバーのバックエンドをs3fsに移行するを 参照してください。


replPropertyMetaData属性の修正

4.5.0以降

4.5.0より前のバージョンのSambaでは、replPropertyMetaData属性が誤って格納されていました。結果として、管理者は、たとえば競合の名前を変更するなどの経験をすることができます。この問題は4.5.0以降の バージョンで修正され、Sambaは属性を正しく保存するようになりました。 samba-toolユーティリティは、間違って格納されたreplPropertyMetaData属性を検出するように拡張されました。

#samba-tool dbcheck --cross-ncs

属性を修正するには、次のコマンドを実行します。

# samba-tool dbcheck --cross-ncs --fix --yes
...
CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com: 0x00000003
CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com: 0x00000000
ERROR: unsorted attributeID values in replPropertyMetaData on CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com

Fix replPropertyMetaData on CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com by sorting the attribute list? [YES]
Fixed attribute 'replPropertyMetaData' of 'CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=samdom,DC=example,DC=com'

--yesパラメータはreplPropertyMetaData属性だけでなく、見つかったすべて の問題を自動的に修正することに注意してください。

replPropertyMetaDataは複製されていない属性であり、変更は他のDCに複製されないため、 すべてのSambaドメインコントローラ(DC)で検査と修正の操作を実行します。

詳細については、[[#Samba AD DCデータベースチェック|]]セクションを参照してください。

==== idmap configパラメータがsmb.confファイルで設定されているとドメインコントローラ上の共有にア クセスできない ====

4.4.6以降

Samba Active Directory(AD)ドメインコントローラ(DC)のwinbinddサービスは、ユーザ ーアカウントとグループのActive DirectoryのuidNumbergidNumber属性で設定されたIDを自動的に使用します。属性が設定されていない場合、SambaはDC上でIDをローカルに生成し、idmap.ldbデータベースに格納します。したがって、Samba AD DCでは、smb.confファイルに設定されたidmap configパラメータは無視されました。 Samba 4.4.6以降のバグにより、パラメータは無視されなくなり、クライアントはDC上の共有に接続できなくなります。問題を解決するには:

  • DC上のsmb.confファイル内のすべてのidmap configパラメータを削除します。
  • sambaサービスを再起動します。
  • クライアントを再起動します。

その結果、クライアントはDC上の共有に正しく接続するようになります。