pdbedit — SAM データベース (Samba ユーザのデータベース) を管理する
pdbedit
[-L] [-v] [-w] [-u username] [-f fullname] [-h homedir] [-D drive] [-S script] [-p profile] [-a] [-t, --password-from-stdin] [-m] [-r] [-x] [-i passdb-backend] [-e passdb-backend] [-b passdb-backend] [-g] [-d debuglevel] [-s configfile] [-P account-policy] [-C value] [-c account-control] [-y]
このツールは、samba(7) システムの一部である。
pdbedit プログラムは SAM データベース内に保持されるユーザアカウントを管理するために利用され、 root だけが実行できる。
pdbedit ツールは、 passdb モジュールのインターフェイス経由で操作を行なうことで、 実際に利用するユーザーデータベースの種類 (現在のところ、smbpasswd ファイル、LDAP、NIS+、tdb ベースのデータベースがあり、それ以外のものもツールの変更なしに追加が可能) に依存しない作りになっている。
pdbedit の主な利用方法として、 ユーザーアカウントの追加、 ユーザーアカウントの削除、 ユーザーアカウントの変更、 ユーザーアカウントの一覧表示、 ユーザーアカウントの取り込みの 5 種類がある。
データベースのすべてのユーザーアカウントを一覧表示する。 ユーザー名と UID の組み合わせが「:」で区切られて一覧表示される。
例: pdbedit -L
sorce:500:Simo Sorcesamba:45:Test User
冗長な一覧表示形式を有効にする。 データベース内のユーザーを一覧表示する際には、 アカウントの各項目を詳細に表示する。
例: pdbedit -L -v
---------------username: sorceuser ID/Group: 500/500user RID/GRID: 2000/2001Full Name: Simo SorceHome Directory: \\BERSERKER\sorceHomeDir Drive: H:Logon Script: \\BERSERKER\netlogon\sorce.batProfile Path: \\BERSERKER\profile---------------username: sambauser ID/Group: 45/45user RID/GRID: 1090/1091Full Name: Test UserHome Directory: \\BERSERKER\sambaHomeDir Drive: Logon Script: Profile Path: \\BERSERKER\profile
一覧表示を「smbpasswd」形式にする。 データベース内のユーザを一覧表示する際、 アカウントの各項目は smbpasswd
ファイル互換の形式 (詳細は smbpasswd(5) を参照のこと) で表示される。
例: pdbedit -L -w
sorce:500:508818B733CE64BEAAD3B435B51404EE: D2A2418EFC466A8A0F6B1DBB5C3DB80C: [UX ]:LCT-00000000:samba:45:0F2B255F7B67A7A9AAD3B435B51404EE: BC281CE3F53B6A5146629CD4751D3490: [UX ]:LCT-3BFA1E8D:
操作 (表示・追加・削除など) の対象とするユーザ名を指定する。 追加・削除・変更操作においては必須であり、 表示操作においては任意である。
ユーザの追加および変更を行なう際に、 ユーザのフルネームを指定する。
例: -f "Simo Sorce"
ユーザの追加および変更を行なう際に、 ユーザのホームディレクトリとなるネットワークパスを指定する。
例: -h "\\\\BERSERKER\\sorce"
ユーザの追加および変更を行なう際に、 ホームディレクトリの割り当て先とする Windows のドライブ名を指定する。
例: -D "H:"
ユーザの追加および変更を行なう際に、 ユーザのログオンスクリプトのパスを指定する。
例: -S "\\\\BERSERKER\\netlogon\\sorce.bat"
ユーザの追加および変更を行なう際に、 ユーザのプロファイルパスを指定する。
例: -p "\\\\BERSERKER\\netlogon"
ユーザの追加および変更を行なう際に、 ユーザのプライマリグループの SID (セキュリティ識別子) または RID を指定する。
例: -G S-1-5-21-2447931902-1787058256-3961074038-1201
ユーザの追加および変更を行なう際に、 ユーザの SID (セキュリティ識別子) または RID を指定する。
例: -U S-1-5-21-2447931902-1787058256-3961074038-5004
ユーザの追加および変更を行なう際に、 ユーザのアカウント制御プロパティを指定する。 指定可能なフラグを以下に示す:
N: パスワード不要
D: アカウント無効
H: ホームディレクトリ必須
T: 一時的に他のアカウントと重複
U: 通常のユーザアカウント
M: MNS ログオン用のユーザアカウント
W: コンピュータ信頼アカウント(訳注: ドメインに参加する各マシンのためのアカウント)
S: サーバ信頼アカウント
L: 自動ロック
X: 無期限パスワード
I: ドメイン信頼アカウント(訳注: 信頼関係するドメインのためのアカウント)
例: -c "[X ]"
このオプションは特定のユーザに対してkickoff時間を 変更するために使われる。kickoff時間を無制限にする引数は、 "決して指定してはならない"。
例: pdbedit -K never user
ユーザをデータベースに追加する際に指定する。 ユーザ名を -u
オプションで指定する必要がある。 ユーザを追加する際、 pdbedit はユーザのパスワードの入力を求める。
例: pdbedit -a -u sorce
new password:retype new password
unix password sync が設定されていた場合でも、 pdbedit はスクリプトを実行せず、Samba のユーザデータベース内のデータのみを更新する点に注意。
ユーザの追加と同時にパスワード同期を直ちに行ないたい場合は、 smbpasswd
の -a
オプションを使用すること。
パスワードを (passwd(1)
プログラムのように) /dev/tty から読み取る代わりに標準入力から読み取らせる。 パスワードは二度入力し、各々末尾に改行(newline)文字を付けること。
データベースの既存のユーザの情報を変更する際に指定する。 ユーザ名は -u
オプションで指定する必要がある。 これ以外のオプションは、 指定したユーザのプロパティを変更するために用いられる。 このオプションは過去との互換性を保つために残されているだけで、 現在は指定する必要はない。
このオプションは -a
オプションと組み合わせて利用する。 これにより、 pdbedit はユーザーアカウントではなくコンピュータ信頼アカウントを追加する。 (-u username にはコンピュータ名を指定する)
例: pdbedit -a -m -u w2k-wks
データベースからユーザを削除する際に指定する。 ユーザ名は -u
オプションで指定する必要がある。
例: pdbedit -x -u bob
ユーザ情報の取得元となるパスワードデータベースとして、 smb.conf で指定したものとは別のものを指定する。 これは、ローカルのユーザデータベースにデータを取り込む (インポートする) 際に利用する。
このオプションにより、 パスワードデータベースの移行を容易に行うことができる。
例: pdbedit -i smbpasswd:/etc/smbpasswd.old
指定したパスワードデータベースに存在するすべてのユーザを転送 (エクスポート) する。
このオプションにより、 パスワードデータベースの移行とバックアップを容易に行うことが可能となる。
例: pdbedit -e smbpasswd:/root/samba-users.backup
-g
オプションを指定すると、 -i in-backend -e out-backend
オプションはユーザーデータベースではなく、 グループマッピングに対して適用される。
このオプションにより、 パスワードデータベースの移行とバックアップを容易に行うことが可能となる。
デフォルト以外のパスワードデータベースを指定する。
例: pdbedit -b xml:/root/pdb-backup.xml -l
アカウントポリシーを表示する。
有効なポリシーは、 「minimum password age」、「reset count minutes」、 「disconnect time」、「user must logon to change password」、 「password history」、「lockout duration」、 「min password length」、「maximum password age」、 「bad lockout attempt」である。
例: pdbedit -P "bad lockout attempt"
account policy value for bad lockout attempt is 0
アカウントポリシーを指定した値に設定する。 このオプションは、-P
オプションと組み合わせて使用する。
例: pdbedit -P "bad lockout attempt" -C 3
account policy value for bad lockout attempt was 0account policy value for bad lockout attempt is now 3
-y
オプションを指定すると、 -i in-backend -e out-backend
オプションはユーザーデータベースではなく、 アカウントポリシーに対して適用される。
このオプションにより、 アカウントポリシーをデフォルトの TDB から LDAP ディレクトリサーバなどのパスワードデータベースに移行することが可能となる。
例: pdbedit -y -i tdbsam: -e ldapsam:ldap://my.ldap.host
コマンドラインオプションの要約を表示する。
level
は0から10までの整数値である。既定値の値は、パラメータが設定されていなければ0である。
この値を大きくするほど、サーバの動作に関するより詳細な情報がログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容となっている
プログラムのバージョン番号を表示する。
サーバーが必要とする詳細な設定を含む設定ファイルを指定する。このファイルには、サーバーが提供するサービスに関する記述や、どの printcap ファイルを利用するかといった情報が含まれている。詳細はsmb.conf
を参照のこと。設定ファイルの名前の既定値は、コンパイル時に決定される。
ログ/デバッグファイルのファイル名。拡張子として".progname"
が追加される(例えば log.smbclient,log.smbd,など)。ログファイルはクライアントによって削除されることはない。