smbpasswd — ユーザーの SMB パスワードを変更
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 パスワードは、既定値の passdb バックエンドに格納される。
一般ユーザーが引数なしで実行すると、 smbpasswd は古い (現在の) SMB パスワードの入力を求めた後、 新しいパスワードが正しく入力されることを確実にするため、 新しいパスワードの入力を 2 回求める。 入力したパスワードは画面上には表示されない。 ユーザーにパスワードが割り当てられていない場合 (smbpasswd ファイルで「NO PASSWORD」という文字列が指定されている場合) は、 古いパスワードの入力を求められたときに <Enter> キーだけを押すこと。
smbpasswd は、一般ユーザーが
Windows NT プライマリドメインコントローラーなどのリモートマシン上の
SMB パスワードを変更する際に使用することもできる。
詳細は下記の -r
オプションと
-U
オプションを参照のこと。
root が実行する場合、smbpasswd は smbpasswd ファイルへの
ユーザーの追加・削除、既存ユーザーの属性を変更することが可能である。
このとき、
smbpasswd
はローカルの smbpasswd ファイルに
直接アクセスする。よって、 smbd が実行されていなくても変更を行うことが可能である。
このオプションは、
指定したユーザー username を新しいパスワードとともにローカルの
smbpasswd ファイルに追加することを指示する。
すでに指定されたユーザーが存在する場合はオプションは無視され、
通常どおりパスワード変更コマンドとして動作する。
注意: デフォルトのパスワードデータベースバックエンドは、
システムのパスワードファイル
(通常は /etc/passwd
)
に同名のユーザーが存在いることを要求するため、
システムにユーザーが存在しないとユーザーの追加は失敗する。
このオプションは、 root が smbpasswd を実行するときだけ利用できる。
このオプションは、既定値のファイルと位置ものを使うことが重要な時、
${prefix}/etc/smb.conf
設定ファイルのパスとファイル名を指定することに使うことが出来る。
このオプションは、 指定したユーザー username をローカルの smbpasswd ファイルから削除することを指示する。
このオプションは、 root が smbpasswd を実行するときだけ利用できる。
このオプションは、
ローカルの smbpasswd ファイル内の指定したユーザー username
を無効にすること
を指示する。
これは、
smbpasswd ファイルのアカウント制御領域に
「D
」
フラグを書き込むことで行なわれる。
こうすることで、
このユーザー名を利用した SMB の認証はすべて失敗するようになる。
smbpasswd ファイルが Samba 2.0 以前の古い形式の場合、 ユーザーのパスワードエントリーに情報を書き込むための領域がないため、 このオプション指定は失敗する。 新旧のパスワードファイル形式についての詳細は、 smbpasswd(5) を参照のこと。
このオプションは、 root が smbpasswd を実行するときだけ利用できる。
このオプションは、
ローカルの smbpasswd ファイル内の指定したユーザー username
を有効にすること
を指示する。
アカウントが無効になっていなければ、このオプションはなんの効果もない。
アカウントを有効にすることで、
このユーザーは再び SMB の認証が受けられるようになる。
smbpasswd ファイルが古い形式の場合、
smbpasswd
はアカウントの有効化に失敗する。
新旧のパスワードファイル形式についての詳細は、
smbpasswd(5) を参照のこと。
このオプションは、 root が smbpasswd を実行するときだけ利用できる。
デバッグレベルを
debuglevel
に設定する。
debuglevel
は、0 から 10 までの整数である。
このパラメーターを指定しないときのデフォルト値は 0 である。
この値を大きくするほど、 smbpasswd の動作に関するより詳細な情報がログファイルに記録される。 レベル 0 では、致命的なエラーと重大な警告のみが記録される。
1 より上のレベルは大量のログが生成されるので、 問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、 莫大な量のログデータが生成される。 そのほとんどは非常に謎めいた内容となっている。
このオプションは、 ローカルの smbpasswd ファイル内の指定したユーザー username のパスワードをなくすよう指示する (すなわち、パスワードなしとなる)。 これは、 smbpasswd ファイルのパスワード保持領域の先頭部分に 「NO PASSWORD」という文字列を書き込むことで行なわれる。
注意: smbpasswd ファイル内でパスワードが「NO PASSWORD」に設定されると、
そのユーザーが Samba サーバーにログオンするためには、
smb.conf
ファイルの
[global] セクションに下記のパラメーターを設定しなければならない:
null passwords = yes
このオプションは、 root が smbpasswd を実行するときだけ利用できる。
このオプションは、
変更したいパスワードがどのマシン上にあるかを指定することができる。
このパラメーターが指定されていないと、デフォルトはローカルホストになる。
remote machine name
には、パスワード変更を試みるために接続する
SMB/CIFS サーバーの NetBIOS 名を指定する。
この名前は、
Samba のすべてのプログラムで利用される標準的な名前解決方式によって、
IP アドレスへと変換される。
名前解決方式の設定については、
-R name resolve order
パラメーターを参照のこと。
パスワードの変更対象となるユーザーの名前は、
smbpasswd 実行時の UNIX のログイン名となる。
異なるユーザー名のパスワードの変更方法については、
-U username
パラメーターを参照のこと。
注意: Windows NT ドメインのパスワードを変更するには、 プライマリドメインコントローラーを指定しなければならない。 (バックアップドメインコントローラーは、 読み込み専用のユーザーアカウントデータベースの複製を持っているだけで、 パスワードを変更することはできない)
注意: Windows 95/98 は実際のパスワードデータベースを持っていないため、 Windows 95/98 マシンを指定してもパスワードの変更はできない。
このオプションにより、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) ファイルにエントリーがない場合、この順序で名前解決方法が試行される。
このオプションは、 パスワードの変更対象のアカントがマシンアカウントであることを smbpasswd に指示する。 現在のところ、このオプションは、Samba が NT プライマリドメインコントローラーとして動作しているときに利用される。
このオプションは、 root が smbpasswd を実行するときだけ利用できる。
このオプションは、
-r
オプションと共に利用する。
リモートマシン上のパスワードを変更する場合に、
パスワード変更対象とする(リモート)マシン上のユーザー名を指定することができる。
これにより、
ユーザーがリモートマシン上で異なるユーザー名を持っている場合でも、
ユーザーはパスワードを変更することができる。
このオプションは、
smbpasswd
のヘルプを表示する。
このオプションを指定すると、
smbpasswd は寡黙 (すなわちプロンプトを出さない) になり、
新旧のパスワードを (passwd(1)
プログラムのように)
/dev/tty
からは読み込まず、
標準入力から読み込むようになる。
このオプションは smbpasswd を扱うスクリプトを書くときに有用となる。
このオプションは、Samba がLDAPサポートを指定してコンパイルされているときのみ利用できる。
-w
オプションは、
ldap admin dn
に使用するパスワードを設定するために利用する。
注意:
パスワードは LDAP 管理者の DN をキーにして
secrets.tdb
ファイルに格納される。
このため、
ldap admin dn
パラメーターの値を変更した場合は、パスワードの更新も必要になる。
注意:
このオプションは標準入力からパスワードを受け取ることを除いて、"-w"と同じである。
このパラメーターはSambaがLDAPサポート付きでコンパイルされている場合に
のみ有効である。-W
スイッチはldap admin dnと
ともに使われるパスワードを指定するのに使われる。
注意:
パスワードは LDAP 管理者の DN をキーにして
secrets.tdb
ファイルに格納される。
このため、
ldap admin dn
パラメーターの値を変更した場合は、パスワードの更新も必要になる。
このオプションは、 パスワードの変更対象のアカントがドメイン間信頼アカウントであることを smbpasswd に指示する。 現在のところ、このオプションは、Samba が NT プライマリドメインコントローラーとして動作しているときに利用される。 このアカウントには、 信頼する側のドメインに関する情報が含まれる。
このオプションは、 root が smbpasswd を実行するときだけ利用できる。
ローカルモードで起動する。
すべての root 専用 オプション用に、操作対象とするユーザーの名前を指定する。 ローカルの smbpasswd ファイルを直接修正する権限を持つ root だけがこのパラメーターを指定することができる。
一般ユーザーが実行する場合、
smbpasswd
はローカルの
smbd とクライアント/サーバーモードで通信するため、
機能するには smbd デーモンが動作していなければならない。
よくある問題として、
ローカルマシンで動作している smbd
にアクセス可能なホストを制限するため
smb.conf(5)
ファイルに
allow hosts
または
deny hosts
パラメーターを設定したときに、
「localhost」にアクセス許可を与えるのを忘れてしまうことがある。
なお、smbpasswd コマンドは、 Samba が暗号化パスワードを使うように設定してあるときのみ利用できる。