Name

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

Synopsis

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 文字 になる ('[' と ']'も含む)。このフィールドの中には、以下のような文字が入る:

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

Last Change Time

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

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

関連項目

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

著者

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

オリジナルの Samba マニュアルページは Karl Auer によって 作成された。マニュアルページは YODL 形式 ( ftp://ftp.icce.rug.nl/pub/unix/ で入手可能な優れた オープンソースソフトウェア) に変換され、Samba 2.0 リリースに伴い、 Jeremy Allison によって更新された。Samba 2.2 における DocBook 形式への変換は、Gerald Carter によって行なわれた。Samba 3.0 における DocBook XML 4.2 形式への変換は Alexander Bokovoy によって行われた。