TOP

ユーザーの管理-その2

ポリシーの設定

-- ポリシーの一覧は、以下で確認できます
# pdbedit -P ""
No account policy by that name!
Account policy names are:
min password length
password history
user must logon to change password
maximum password age
minimum password age
lockout duration
reset count minutes
bad lockout attempt
disconnect time
refuse machine password change
# 

-- 設定は以下のように行います(例:パスワードの有効期限を90日にする)
# pdbedit -P "maximum password age" -C 7776000
-P "maximum password age" -C [秒数]パスワードの有効期限画像
-P "password history" -C [回数]パスワード変更の際に参照する過去の履歴数。無視する場合は"0"にする。画像
-P "bad lockout attempt" -C [回数]パスワード間違いを許可する回数画像
-P "reset count minutes"失敗した回数のカウントアップをクリアする時間
※パスワード失敗すると「pdbedit -v -u <ユーザー名>」の
[Bad password count]で確認できます。
ここで指定した時間が経過すると、"0"になります
画像
-P "lockout duration" -C [分]ロックアウトを自動解除する時間
※無期限にする場合、"-1"を指定する。
画像
メモ:
rootでパスワードを変更した場合、ポリシーは無視され強制変更されちゃいます。


Linuxとのパスワード同期

-- [global]セクション内に記述します
-- 
# vi smb.conf
[global]
	unix password sync = yes		←同期することの宣言
	passwd program = /usr/bin/passwd %u	←Linuxのパスワード変更コマンドのパスと、%u
	passwd chat = * %n\n * %n\n *		←上記パスワード変更コマンド実行時の返答のため、
						 表示される内容を指定する。
#       passwd chat debug = yes			←うまくいかなかった場合、デバッグでエラーを探るため
#       log level = 100				←デバッグの際、100以上に指定する

-- パスワードを変更します
$ smbpasswd -U grot3
added interface eth0 ip=XXX.XXX.XXX.XXX bcast=XXX.XXX.XXX.255 netmask=255.255.255.0
Old SMB password:		←現在のパスワードを入力
New SMB password:		←新しいパスワードを入力
Retype new SMB password:	←再度新しいパスワードを入力
Connecting to 127.0.0.1 at port 445
Doing spnego session setup (blob length=58)
got OID=1.3.6.1.4.1.311.2.2.10
got principal=NONE
Got challenge flags:
Got NTLMSSP neg_flags=0x608a8215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x60088215
Got challenge flags:
Got NTLMSSP neg_flags=0x608a8235
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x60088235
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x60088235
Password changed for user grot3
$ 
-- 現在のパスワードを間違えた場合
<省略>
SPNEGO login failed: Logon failure
Could not connect to machine 127.0.0.1: NT_STATUS_LOGON_FAILURE

-- 新しいパスワードがポリシーに違反している場合
<省略>
machine 127.0.0.1 rejected the password change: Error was : Password restriction.
条件:
  1. root以外のユーザーで実行する
  2. smb.conf の hosts allow に 127.0.0.1 を入れる
この設定をした場合、Linuxと同期するというより、Linuxのパスワード変更コマンドが自動発行される。のほうがしっくりくるかも。
teratermのマクロに似た動作で、『passwd chat』で指定した文字列が、『wait』で指定する文字列と置き換えて覚えると良いです。


パスワードファイルについて

-- パスワード認証データベースを指定します
# vi smb.conf
[global]
	-- サーバー単体でのアカウント管理の場合
	passdb backend = tdbsam				←tdbsam形式を指定する場合
	#passdb backend = tdbsam:/var/passdb.tdb	←このように、ファイルを指定することもできます。

-以下未検証-
	-- ldapサーバーでのアカウント管理の場合

	-- sambaサーバーで同時にドメインコントローラを運用する場合
	passwd backend = ldapsam:/ldap://LDAPサーバ名:ポート番号	


smbpasswd旧方式(現在は非推奨)
tdbsamTDB形式のデータベース(通常はこれ)/var/lib/samba/private/passdb.tdb
ldapsamLDAPサーバ(ドメインコントローラを使用する場合)
メモ:
「tdbsam」について
「tdbsam:ファイルパス」で指定したあと、サービスを再起動した場合、指定したファイルが新規作成されます。
新規作成のため、ユーザーが存在しません。新たにユーザーメンテナンスが必要です。
以上のことから、ファイルパスを置き換えることで別管理が可能なので、検証などに使えそうです。

TOPへ