の共有設定でsmb.conf
、write list = ...
行を使用して、共有への書き込みを許可するユーザーまたはグループ、あるいはその両方の名前を指定する必要があります。
例:
[myshare]
...
write list = my_linux_username
次に、このsmbpasswd
コマンドを使用して、my_linux_username
Samba を認証するためのパスワードを設定する必要があります。
sudo smbpasswd -a my_linux_username
/etc/shadow
SMBプロトコルで使用されるパスワードハッシュアルゴリズムと互換性のないアルゴリズムで標準システムパスワードがハッシュされるため、この手順が必要です。クライアントがSMB認証パケットを送信すると、ハッシュされたパスワードが含まれます。同じアルゴリズムを使用する別のパスワードハッシュとのみ比較できます。
(非常に、以前の千年から非常に古いの指示は、Sambaでパスワードの暗号化を無効にし、Windowsがネットワークに暗号化されていないパスワードを放出することを可能にするために特定のレジストリハックを使用して推薦することができるこのアドバイスはある。時代遅れ:現在のバージョンでは、これらのレジストリハックかもしれもはや仕事をWindows。ネットワークトラフィックを監視できる人なら誰でもパスワードを簡単に取得できます。)
クライアント側でやらなければならないことがもう1つあります。WindowsクライアントシステムがActive Directoryドメインに参加し、ADアカウントでログインすると、すべての非修飾ユーザー名にユーザーのADドメインの名前が自動的にプレフィックスされます。つまりAD_DOMAIN\your_username
、だけでなくとして認証されyour_username
ます。
ローカルアカウントでログインしている場合(またはクライアントシステムがADドメインに参加していない場合)、別のドメイン名を指定しない限り、Windowsは自動的にユーザー名の前にクライアントホスト名を付けることがあります。
スタンドアロンWindowsクライアントからスタンドアロンSambaサーバーに正常にログインするには、ユーザー名をとして指定する必要がありますSAMBA_SERVER_HOSTNAME\your_username
。
そうしないと、Sambaはユーザー名をとしてWINDOWS_CLIENT_HOSTNAME\your_username
認識し、という名前のドメインに属するユーザーを確認する方法がないと判断WINDOWS_CLIENT_HOSTNAME
し、ログインを拒否します。
(Sambaの新しいバージョンには、この特定の状況に対するビルトインチェックがあり、それでもアクセスできる可能性があります。しかし、これは基本的にSMB認証が「内部で」動作する方法です。 、まだ役に立つかもしれません。)
force user = defaultUser
ことで仕事ができました。