Name

smbpasswd — ユーザーの SMB パスワードを変更する

Synopsis

smbpasswd [-a] [-c <config file>] [-x] [-d] [-e] [-D debuglevel] [-n] [-r <remote machine>] [-R <name resolve order>] [-m] [-U username[%password]] [-h] [-s] [-w pass] [-W] [-i] [-L] [username]

説明

このツールは、Samba(7)システムの一部である。

smbpasswd プログラムは、 root ユーザーによって実行される場合とそうでない場合とで、いくつかの機能が異なる。 一般ユーザーによって実行される場合、ユーザーは SMB パスワードを格納するあらゆるマシン上で、SMB セッションのために利用する自分のパスワードを変更することができる。

デフォルト (引数なしで実行した場合) では、 ローカルマシン上の実行したユーザーの SMB パスワードの変更を試みる。 これは passwd(1) プログラムと似た動作となる。 smbpasswd は、 setuid root されていない点と、 クライアント/サーバーモードで動作し、同一ホストで動作している smbd(8) と通信する点が passwd(1) と異なる。 このため、パスワードを変更するには、 smbd デーモンがローカルマシン上で動作していなければならない。 UNIX マシン上では、通常、 暗号化された SMB パスワードは smbpasswd(5) ファイルに保持される。

一般ユーザーが引数なしで実行すると、 smbpasswd は古い (現在の) SMB パスワードの入力を求めた後、 新しいパスワードが正しく入力されることを確実にするため、 新しいパスワードの入力を 2 回求める。 入力したパスワードは画面上には表示されない。 ユーザーにパスワードが割り当てられていない場合 (smbpasswd ファイルで「NO PASSWORD」という文字列が指定されている場合) は、 古いパスワードの入力を求められたときに <Enter> キーだけを押すこと。

smbpasswd は、一般ユーザーが Windows NT プライマリドメインコントローラーなどのリモートマシン上の SMB パスワードを変更する際に使用することもできる。 詳細は下記の -r オプションと -U オプションを参照のこと。

root が実行する場合、smbpasswd は smbpasswd ファイルへの ユーザーの追加・削除、既存ユーザーの属性を変更することが可能である。 このとき、 smbpasswd はローカルの smbpasswd ファイルに 直接アクセスする。よって、 smbd が実行されていなくても変更を行うことが可能である。

オプション

-a

このオプションは、 指定したユーザー username を新しいパスワードとともにローカルの smbpasswd ファイルに追加することを指示する。 すでに指定されたユーザーが存在する場合はオプションは無視され、 通常どおりパスワード変更コマンドとして動作する。 注意: デフォルトのパスワードデータベースバックエンドは、 システムのパスワードファイル (通常は /etc/passwd) に同名のユーザーが存在いることを要求するため、 システムにユーザーが存在しないとユーザーの追加は失敗する。

このオプションは、 root が smbpasswd を実行するときだけ利用できる。

-c

このオプションは、既定値のファイルと位置ものを使うことが重要な時、 smb.conf設定ファイルのパスとファイル名を指定することに使うことが出来る。

-x

このオプションは、 指定したユーザー username をローカルの smbpasswd ファイルから削除することを指示する。

このオプションは、 root が smbpasswd を実行するときだけ利用できる。

-d

このオプションは、 ローカルの smbpasswd ファイル内の指定したユーザー username を無効にすることを指示する。 これは、 smbpasswd ファイルのアカウント制御領域に 「D」 フラグを書き込むことで行なわれる。 こうすることで、 このユーザー名を利用した SMB の認証はすべて失敗するようになる。

smbpasswd ファイルが Samba 2.0 以前の古い形式の場合、 ユーザーのパスワードエントリに情報を書き込むための領域がないため、 このオプション指定は失敗する。 新旧のパスワードファイル形式についての詳細は、 smbpasswd(5) を参照のこと。

このオプションは、 root が smbpasswd を実行するときだけ利用できる。

-e

このオプションは、 ローカルの smbpasswd ファイル内の指定したユーザー username を有効にすることを指示する。 アカウントが無効になっていなければ、このオプションはなんの効果もない。 アカウントを有効にすることで、 このユーザーは再び SMB の認証が受けられるようになる。

smbpasswd ファイルが古い形式の場合、 smbpasswd はアカウントの有効化に失敗する。 新旧のパスワードファイル形式についての詳細は、 smbpasswd(5) を参照のこと。

このオプションは、 root が smbpasswd を実行するときだけ利用できる。

-D debuglevel

デバッグレベルを debuglevel に設定する。 debuglevel は、0 から 10 までの整数である。 このパラメータを指定しないときのデフォルト値は 0 である。

この値を大きくするほど、 smbpasswd の動作に関するより詳細な情報がログファイルに記録される。 レベル 0 では、致命的なエラーと重大な警告のみが記録される。

1 より上のレベルは大量のログが生成されるので、 問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、 莫大な量のログデータが生成される。 そのほとんどは非常に謎めいた内容となっている。

-n

このオプションは、 ローカルの smbpasswd ファイル内の指定したユーザー username のパスワードをなくすよう指示する (すなわち、パスワードなしとなる)。 これは、 smbpasswd ファイルのパスワード保持領域の先頭部分に 「NO PASSWORD」という文字列を書き込むことで行なわれる。

注意: smbpasswd ファイル内でパスワードが「NO PASSWORD」に設定されると、 そのユーザーが Samba サーバーにログオンするためには、 smb.conf ファイルの [global] セクションに下記のパラメータを設定しなければならない:

null passwords = yes

このオプションは、 root が smbpasswd を実行するときだけ利用できる。

-r remote machine name

このオプションは、 変更したいパスワードがどのマシン上にあるかを指定することができる。 このパラメータが指定されていないと、デフォルトはローカルホストになる。 remote machine name には、パスワード変更を試みるために接続する SMB/CIFS サーバーの NetBIOS 名を指定する。 この名前は、 Samba のすべてのプログラムで利用される標準的な名前解決方式によって、 IP アドレスへと変換される。 名前解決方式の設定については、 -R name resolve order パラメータを参照のこと。

パスワードの変更対象となるユーザーの名前は、 smbpasswd 実行時の UNIX のログイン名となる。 異なるユーザー名のパスワードの変更方法については、 -U username パラメータを参照のこと。

注意: Windows NT ドメインのパスワードを変更するには、 プライマリドメインコントローラーを指定しなければならない。 (バックアップドメインコントローラーは、 読み込み専用のユーザアカウントデータベースの複製を持っているだけで、 パスワードを変更することはできない)

注意: Windows 95/98 は実際のパスワードデータベースを持っていないため、 Windows 95/98 マシンを指定してもパスワードの変更はできない。

-R name resolve order

このオプションにより、smbpasswd のユーザーは、接続先のホストのNetBIOS 名の検索にどの名前解決サービスを使用するかを決めることができる。

オプションには、"lmhosts"、"host"、"wins"、"bcast"のいずれかを指定する。それぞれの名前解決は以下のように行われる。

  • lmhosts: Samba lmhosts ファイルで IP アドレスが検索される。lmhosts の行に NetBIOS 名にアタッチされるネームタイプがない場合(詳細については lmhosts(5) を参照)、ネームタイプがどれであるかは検索結果に影響しなくなる。

  • host: システムの /etc/hosts 、NIS、DNS ルックアップを使用した、ホスト名 - IP アドレス間の標準の名前解決が行われる。名前解決の方法の詳細な部分は、IRIX、Solaris といった OS によって変わる。/etc/nsswitch.conf で制御できる場合もある。この方法は、検索される NetBIOS 名のタイプが 0x20 (サーバー) である時にのみ使用できる点に注意。さもなければ指定しても無視される。

  • wins: wins server パラメータに指定された IP アドレスを持つ名前が検索される。WINS サーバーが指定されていなければ、無視される。

  • bcast: interfaces パラメータに指定された既知のローカル・インターフェースそれぞれについてブロードキャストを行う。ターゲット・ホストがローカル接続サブネット上にある場合にしか使えないので、最も信頼性の低い名前解決法。

デフォルトの優先順位は、lmhosts、host、wins、bcast となる。このパラメータがない場合、あるいはsmb.conf(5) ファイルにエントリがない場合、この順序で名前解決方法が試行される。

-m

このオプションは、 パスワードの変更対象のアカントがマシンアカウントであることを smbpasswd に指示する。 現在のところ、このオプションは、Samba が NT プライマリドメインコントローラーとして動作しているときに利用される。

このオプションは、 root が smbpasswd を実行するときだけ利用できる。

-U username

このオプションは、 -r オプションと共に利用する。 リモートマシン上のパスワードを変更する場合に、 パスワード変更対象とする(リモート)マシン上のユーザー名を指定することができる。 これにより、 ユーザーがリモートマシン上で異なるユーザー名を持っている場合でも、 ユーザーはパスワードを変更することができる。

-h

このオプションは、 smbpasswd のヘルプを表示する。

-s

このオプションを指定すると、 smbpasswd は寡黙 (すなわちプロンプトを出さない) になり、 新旧のパスワードを (passwd(1) プログラムのように) /dev/tty からは読み込まず、 標準入力から読み込むようになる。 このオプションは smbpasswd を扱うスクリプトを書くときに有用となる。

-w password

このオプションは、Samba がLDAPサポートを指定してコンパイルされているときのみ利用できる。 -w オプションは、 ldap admin dn に使用するパスワードを設定するために利用する。 注意: パスワードは LDAP 管理者の DN をキーにして secrets.tdb ファイルに格納される。 このため、 ldap admin dn パラメータの値を変更した場合は、パスワードの更新も必要になる。

-W

注意:このオプションは標準入力からパスワードを受け取ることを除いて、"-w"と同じである。

このパラメータはSambaがLDAPサポート付きでコンパイルされている場合に のみ有効である。-Wスイッチはldap admin dnと ともに使われるパスワードを指定するのに使われる。 注意: パスワードは LDAP 管理者の DN をキーにして secrets.tdb ファイルに格納される。 このため、 ldap admin dn パラメータの値を変更した場合は、パスワードの更新も必要になる。

-i

このオプションは、 パスワードの変更対象のアカントがドメイン間信頼アカウントであることを smbpasswd に指示する。 現在のところ、このオプションは、Samba が NT プライマリドメインコントローラーとして動作しているときに利用される。 このアカウントには、 信頼する側のドメインに関する情報が含まれる。

このオプションは、 root が smbpasswd を実行するときだけ利用できる。

-L

ローカルモードで起動する。

username

すべての root 専用 オプション用に、操作対象とするユーザーの名前を指定する。 ローカルの smbpasswd ファイルを直接修正する権限を持つ root だけがこのパラメータを指定することができる。

注意

一般ユーザーが実行する場合、 smbpasswd はローカルの smbd とクライアント/サーバーモードで通信するため、 機能するには smbd デーモンが動作していなければならない。 よくある問題として、 ローカルマシンで動作している smbd にアクセス可能なホストを制限するため smb.conf(5) ファイルに allow hosts または deny hosts パラメータを設定したときに、 「localhost」にアクセス許可を与えるのを忘れてしまうことがある。

なお、smbpasswd コマンドは、 Samba が暗号化パスワードを使うように設定してあるときのみ利用できる。