私はサーバーにsambaをインストールし、ユーザーを追加する2つのステップを省くためのスクリプトを作成しようとしています。例:
adduser username
smbpasswd -a username
ぼくの smb.conf
状態:
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
さらに読むと、次のようなpdbedit
manページが表示されます。
-a This option is used to add a user into the database. This com-
mand needs a user name specified with the -u switch. When adding
a new user, pdbedit will also ask for the password to be used.
Example: pdbedit -a -u sorce
new password:
retype new password
Note
pdbedit does not call the unix password syncronisation script if
unix password sync has been set. It only updates the data in the
Samba user database.
If you wish to add a user and synchronise the password that im-
mediately, use smbpasswd’s -a option.
ですから... smbpasswd
でユーザーを追加してみることにしました:
root@raspberrypi:/home/pi# smbpasswd -a newuser
New SMB password:
Retype new SMB password:
Failed to add entry for user newuser.
root@raspberrypi:/home/pi# useradd mag
root@raspberrypi:/home/pi# smbpasswd -a mag
New SMB password:
Retype new SMB password:
Added user mag.
# switch to user pi, and try to switch to mag
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag
Password:
su: Authentication failure
だから、今私は自分自身に尋ねています:
誰かが私を啓発するのを手伝ってくれる?
さて...ミッシングリンクは:
libpam-smbpass
したがって、このパッケージをインストールした後、期待どおりに動作します。インターネットの長期記憶は時々部分的な情報をもたらすだけです。これと戦うために、私はここに正しいリンクを公開しています sambaパスワードとunixパスワードを同期する 、そして私自身のテスト。
root@raspberrypi:/home/pi# passwd mag2
passwd: user 'mag2' does not exist
root@raspberrypi:/home/pi# useradd mag2
root@raspberrypi:/home/pi# echo "mag2:12345" | chpasswd
root@raspberrypi:/home/pi# smbclient -L localhost -U mag2
Enter mag2's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (raspberrypi server)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]
Server Comment
--------- -------
RASPBERRYPI raspberrypi server
Workgroup Master
--------- -------
WORKGROUP
root@raspberrypi:/home/pi# su pi
pi@raspberrypi ~ $ su mag2
Password:
Added user mag2.
mag2@raspberrypi:/home/pi$
これが他の誰かの役に立つことを願っています。
libpam-smbpass
は非推奨です 。それが置き換えられたようですpam_winbindd
。パッケージをインストールできますlibpam-winbind
取得します。ただし、これでもsambaのパスワードとUNIXのパスワードは同期されません。代わりに、Windows認証サーバー(AD)を使用してUNIXへの認証を行うことができます。あなたはここでその情報を見つけることができます: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
以前の回答についてコメントしたかったが、評判の点でコメントできなかった。この回答に完全なコンテンツを載せようとしましたが、スパムのように見えたため、できませんでした。 ここ はウェイバックマシン上の完全なコンテンツへのアクセスであり、以下は主なポイントの簡単なバージョンです。
次のパッケージをインストールします。
# apt-get install libpam-smbpass smbclient
ユーザーがUnixパスワードを変更するたびにSambaパスワードを更新するには、
/etc/pam.d/common-password:から
password required pam_unix.so nullok obscure min=4 max=8 md5
に
password requisite** pam_unix.so nullok obscure min=4 max=8 md5
password required pam_smbpass.so nullok use_authtok try_first_pass
Pam_unixの「必須」を「必須」に変更すると、Unixパスワードの変更が失敗した場合、プラグインの実行がすぐに終了します。
これが機能するためには、ユーザーはすでにSambaアカウントを持っている必要があり、SambaパスワードはUnixパスワードと一致している必要があります。これは必ずしもそうではないので、変更する必要があります
/etc/pam.d/common-auth:から
auth required pam_unix.so nullok_secure
に
auth requisite pam_unix.so nullok_secure
auth optional pam_smbpass.so migrate
これにより、Sambaユーザーがまだ存在しない場合は作成され、ユーザーがデフォルトのシステム(common-auth)認証を使用するSSHまたはその他のサービスを使用してログインするたびに、そのパスワードがUnixパスワードに変更されます。
Sambaアカウントをまだ持っていないアカウントでSSHを使用してログインすると、Added userというメッセージが表示されます。
これによりrootのSambaアカウントも作成されるため、Sambaでrootアクセスを無効にすることもできます(Debian Etchではデフォルトで無効になっています)。
/etc/samba/smb.conf:
invalid users = root
警告:ユーザーがパスワードを使用せずにSSHまたは他のサービスを介してログインした場合(たとえば、公開/秘密鍵認証を使用して)、これは機能しません。この場合、PAMにはSambaパスワードを作成するために必要なプレーンテキストのパスワードはありません。
通知:共通パスワードを変更してSambaパスワードの更新も要求すると、現在ログインしているユーザーは「passwd」を使用してパスワードを変更できなくなります再ログインするまで、Unixパスワードと同じパスワードを持つ既存のSambaアカウントを既に持っている場合を除きます。
パスワードを変更するときにPAMを使用するようにSambaに指示します。
/etc/samba/smb.conf:
unix password sync = yes
pam password change = yes
/etc/init.d/samba restartを使用してSambaを再起動します。
@include common-passwordを追加して、Sambaによるパスワードの変更をサポートするようにPAMを構成します。
/etc/pam.d/samba:
@include common-auth
@include common-account
@include common-session
@include common-password
これは、Sambaを使用するときと同じメカニズムを使用して、「passwd」を使用するときと同じようにパスワードを変更します。つまり、Sambaパスワードを変更する前に、Unixパスワードを更新する必要があります。
エラーを回避するには、chpasswdを使用します。
# useradd test
# echo “test:newpass” | chpasswd