# smbpasswd

## 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)