[samba-jp:22267] Re: SWATで各自のパスワード変更?

TAKAHASHI Motonobu monyo @ monyo.com
2014年 6月 16日 (月) 00:11:22 JST


たかはしもとのぶです。

From: ODAGIRI Koji <odagiri @ osstech.co.jp>
Date: Sun, 15 Jun 2014 21:23:54 +0900

> OSSTech 小田切です。
> 
> 普通は
> unix password sync と
> pam password change の両方をYesにしてはいけません。
> 
> Linuxでの推奨は
> unix password sync= no
> pam password change = yes
> として
> /etc/pam.d/samba
> にpassword行をちゃんと設定することです。

わたしも、竹内さんと同じく 

  unix password sync = yes
  pam password change = yes

は両方共必要だという理解です。
念のため試して見ましたが、

  unix password sync = no
  pam password change = yes

の環境では、Sambaユーザのパスワードを変更してもUNIXユーザの
パスワードは変更されませんでした。

試したのは次のような環境です。

・Debian 7(Wheezy) + Wheezy 付属の Samba 3.6.6
・smb.conf は次のとおり

-----
  [global]
    unix password sync = yes|no
    pam password change = yes

  [tmp]
    path = /tmp
-----

# useradd test1
# pdbedit -a test1
(この過程でtest1のSambaユーザとしてのパスワードも設定)
# su - test1
$ smbpasswd test1
(この過程でtest1のSambaユーザとしてのパスワードが変更)
$ exit

# smbclient //localhost/tmp -Utest1 ←Sambaユーザのパスワードが
  意図したものになっているか確認
# ssh localhost -l test1 ←UNIXユーザのパスワードが意図したものに
  なっているか確認
-----

なお、竹内さんの以下の記述ですが

>> PosixAccount用のパスワード(/etc/passwd で管理しているパスワード)も
>> 変更したいのであれば、以下を追加することで変更可能です。
>> 
>> unix password sync= yes
>> passwd program = /usr/bin/passwd %u
>> pam password change = Yes

pam password change = yes の場合、UNIXユーザのパスワードの変更はPAM経由で
行われるため、passwd program パラメータの設定は無視されます。そのため、
設定する必要はありません。

後、元々の質問ですが、わたしも廃止予定の SWAT の使用は推奨しません。
竹内さんが書かれたように、Ctrl+Alt+Del で変更するか、それも敷居が高いと
いう場合は、WSH や PowerShell などでパスワードを変更するスクリプトを
作ればよいと思います。

例えば、何らかのユーザとしてSambaサーバに接続している環境であれば、
次のようなWSHスクリプトにより、ユーザのパスワードを変更することが
できます。

-----
Set objUser = GetObject("WinNT://SAMBAserver/test1")
objUser.ChangePassword "damedame", "damesugi"
-----

---
TAKAHASHI Motonobu <monyo @ monyo.com> / @damemonyo 
                   facebook.com/takahashi.motonobu



samba-jp メーリングリストの案内