名前

smbpasswd — Samba の暗号化パスワードファイル

書式

smbpasswd

説明

このファイルはSamba(7)システムの一部である。

smbpasswd は Samba の暗号化パスワードファイルである。 このファイルには、ユーザー名、UNIX のユーザー ID、ユーザーの SMB ハッシュ化パスワード、さらにアカウントのフラグ情報とパスワードの 最終変更時間が含まれている。このファイルの形式は Samba とともに 拡張されており、以前のバージョンとは幾分異なった形式になっている。

ファイル形式

Samba 2.2 における smbpasswd ファイルの形式は、一般的な UNIX の passwd(5) ファイルに類似している。 これは、各ユーザーの情報が行ごとに格納された ASCII ファイルである。 各行のそれぞれのフィールドは、コロン (:) で区切られている。 '#' で始まる行は無視される。 smbpasswd ファイルには、各ユーザーごとに以下の情報が含まれている:

name

ユーザーの名前である。この名前は、標準の UNIX passwd ファイルに存在している必要がある。

uid

UNIX の uid である。この値は、標準の UNIX passwd ファイル内の同名ユーザーが持つ uid フィールドの値と 一致しなければならない。 一致していないと、Samba は smbpasswd ファイルのエントリーを有効なユーザーのエントリーとして認識しない。

Lanman パスワードハッシュ

これは、ユーザーのパスワードから生成された LANMANハッシュであり、32 桁の 16 進数でエンコードされている。 LANMANハッシュは、ユーザーのパスワードをキーとして用いて、 ある一定の文字列を DES で暗号化することで生成される。これは、 Windows 95/98 マシンで利用されるパスワードと同じである。 このパスワードハッシュは辞書攻撃に弱いとみなされていて、 もし二人のユーザーが同じパスワードを持つ場合、このエントリーも 同一のものになってしまう (UNIX パスワードのようにパスワードが "加工 (salted)" されていない)。 ユーザーが null パスワードを持つ場合、このフィールドの先頭の 16 進数文字列の部分に "NO PASSWORD" という文字が入る。 16 進数文字列が 32 個の 'X' 文字からなる場合、 このユーザーアカウントは無効であると見なされ、ユーザーは Samba サーバーにログオンすることができない。

警告!! SMB/CIFS の認証プロトコルはチャレンジ/レスポンス方式で あるため、パスワードハッシュさえ知っていれば、 誰でもネットワーク上でそのユーザーになりすますことができる。 このため、これらのハッシュは 暗号化されていないテキスト と同等のものであり、root 以外には 絶対に 漏らしてはならない。これらのパスワードを保護するため、 smbpasswd ファイルは、root だけが読みとりや実行アクセス可能な ディレクトリに置き、ファイル自身は root だけに読み書き アクセス権を与えるべきである。

NT パスワードハッシュ

これは、ユーザーのパスワードから生成された Windows NT ハッシュであり、 32 桁の 16 進数でエンコードされて いる。Windows NT ハッシュは、ユーザーのパスワードを 16 ビット/リトルエディアンの UNICODE で表現したものに対し、MD4 ハッシュアルゴリズム (RFC1321を参照) を適用することで 生成される。

このパスワードハッシュは パスワードの大文字/小文字の 情報を保持しており、よりセキュアなハッシュアルゴリズムを 使用するため、LANMAN ハッシュより非常にセキュアであると 考えられる。しかし、やはり同じパスワードを持つユーザーが 二人いる場合、このエントリーも同一のものになってしまう (UNIX パスワードのようにパスワードが "加工(salted)" されていない)。

警告!! SMB/CIFS の認証プロトコルはチャレンジ/レスポンス方式で あるため、パスワードハッシュさえ知っていれば、 誰でもネットワーク上でそのユーザーになりすますことができる。 このため、これらのハッシュは 暗号化されていないテキスト と同等のものであり、root 以外には 絶対に 漏らしてはならない。これらのパスワードを保護するため、 smbpasswd ファイルは、root だけが読みとりや実行アクセス可能な ディレクトリに置き、ファイル自身は root だけに読み書き アクセス権を与えるべきである。

Account Flags

これは、ユーザーアカウントの属性を表すフラグで ある。このフィールドはブラケット '[' と ']' で囲まれており、長さは常に 13 文字 になる ('[' と ']'も含む)。このフィールドの中には、以下のような文字が入る:

  • U - "User" アカウント、つまり一般のユーザーを意味する。

  • N - アカウントがパスワードを持っていないことを意味する (LANMAN ハッシュと NT ハッシュのフィールドにある パスワード情報は無視される)。このフラグによって、 smb.conf(5) ファイル中の null passwords パラメーターが 設定されていている場合にのみ、ユーザーはパスワードなしで ログインできるようになる。

  • D - アカウントが無効であることを意味し、このユーザーは SMB/CIFS ログオンが許可されない。

  • X - これは、パスワードが 満了していないことを意味する。

  • W - アカウントが "Workstation Trust" アカウントであることを意味する。 このアカウントは、Samba の PDC 機能で、Windows NT Workstation や Server を Samba PDC によるドメインに 参加させるために利用される。

将来的にコードが拡張されれば、そのほかのフラグが 追加されるかもしれない。このフィールドの残った部分は空白文字で 埋められている。この場所でサポートされているフラグに関してさらなる情報は、 pdbeditマニュアルページを参照して欲しい。

Last Change Time

このフィールドには、アカウントが更新された 最終時間を保持する。このフィールドには文字列 'LCT-' ("Last Change Time" を意味する) に続けて、最後に更新が行われた UNIX 時間 (西暦 1970 年からの経過秒数) を数字で表した文字列が 続く。

コロンで区切られた他のフィールドは、 現在すべて無視される。

バージョン

このマニュアルページは Samba バージョン 4.20.4 用である。

関連項目

smbpasswd(8), Samba(7), および RFC1321 (MD4アルゴリズムの詳細)

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell によって作成された。現在 Samba は Samba Team によって、Linux カーネルの開発と同様の オープンソースプロジェクトと して開発が行なわれている。

日本語訳

このマニュアルページは Samba 3.2.4 - 4.20.4 に対応する。

このドキュメントの Samba 3.0.0 対応の翻訳は、

  • 高橋 基信 (monyo@samba.gr.jp)

  • はせがわ ようすけ

  • 山田 史朗 (shiro@miraclelinux.com)

によって行なわれた。

このドキュメントの Samba 3.2.4 - 4.20.4 対応の翻訳は、太田俊哉(ribbon@samba.gr.jp)によって行なわれた。