SMBPASSWD(5)

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

SYNOPSIS

smbpasswd

DESCRIPTION

このツールは Samba スイートの一部である。

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

ファイル形式

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

名前  ユーザの名前である。 この名前は、標準の 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
    これは、ユーザアカウントの属性を表すフラグである。 Samba 2.2のリリースでは、 このフィールドはブラケット '[' と ']' で囲まれており、 長さは常に 13 文字になる ('[' と ']'も含む)。 このフィールドの中には、以下のような文字が入る。

    •   U - "User" アカウント、つまり一般のユーザを意味する。 User と Workstation信頼アカウントだけが、 現在の smbpasswd ファイルでサポートされている。

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

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

    •   W - アカウントが "Workstation Trust" アカウントであることを意味する。 このアカウントは、Samba の PDC 機能で、 Windows NT Workstation や Server を Samba PDC による ドメインに参加させるために利用される。
将来にコードが拡張されれば、 そのほかのフラグが追加されるだろう。 このフィールドの残った部分は空白文字で埋められている。

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

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

バージョン

このマニュアルページは Samba 2.2 対応のものである。

参照

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 によって行なわれた。

日本語訳

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