777パーミッションなしでWindowsから書き込み可能なSamba共有を作成する方法は?


33

Linuxマシン(Debian 8)にSamba 4と共有してWindowsコンピューター(ドメイン内のWin7と8)に共有したいパスがあります。smb.conf私は次のことをしました。

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
guest ok = yes
public = yes

Windowsからの完全な読み取りアクセス権があります。しかし、書き込みアクセス権を持つためにはchmod -R 777 /path/to/share、Windowsから書き込みできるようにする必要があります。

私が欲しいのは、LinuxのLinux所有者のLinux資格情報を提供した後、Windowsからの書き込みアクセスです/path/to/share

私はすでに試しました:

[myshare]
path = /path/to/share
writeable = yes
browseable = yes

その後、Windowsは資格情報を要求しますが、入力内容に関係なく、常に拒否されます。

777を許可せずにWindowsドメインコンピューターからSamba共有への書き込みアクセスを取得する正しい方法は何ですか?

回答:


49

その共有専用のユーザーを作成して指定することをお勧めしますforce user(ドキュメントを参照)

shareuserたとえば)ユーザーを作成し、共有フォルダー内のすべての所有者をそのユーザーに設定します。

adduser --system shareuser
chown -R shareuser /path/to/share

次に、次の場所force userに許可マスク設定を追加しますsmb.conf

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
public = yes
create mask = 0644
directory mask = 0755
force user = shareuser

guest okはの同義語であることに注意してくださいpublic


1
私は同様の問題を抱えており、すべてのグーグル検索は777を単に使用する汚い方法を示しました。共有フォルダに775が必要であり、Linux「defaultUser」を使用してファイルを作成したかった。フォルダーは775、作成、ディレクトリマスクは775でしたが、Windowsでは書き込み可能ではなく、理由がわかりませんでした。追加するforce user = defaultUserことで仕事ができました。
-firepol

これを機能させることはできません。ディレクトリを共有しようとすると、ディレクトリを共有するために「その他」の書き込み許可を与える必要があるというウィンドウが表示されます。
マーククレイマー

わかった、問題はの場所だったsmb.conf。Googleとさえsambasドキュメントは、ファイルがであるべきと述べた/usr/local/samba/libが、実際にそれがである/etc/samba
マーク・クレイマー

1
@MarkKramer多くのディストリビューションがLinux FoundationのFHS(Filesystem Hierarchy Standard)に適合するようにファイルを再編成するため、特定のLinuxディストリビューションに含まれるドキュメントに従うことをお勧めします。Googleが常にベストアンサーとは限らないため、ディストリビューションに付属のドキュメントを読んで検索することをお勧めします。たとえば、ソフトウェアの別のバージョンに関する情報を取得できる場合があります。宜しくお願いします。
RobertL

2

の共有設定でsmb.confwrite list = ...行を使用して、共有への書き込みを許可するユーザーまたはグループ、あるいはその両方の名前を指定する必要があります。

例:

[myshare]
...
write list = my_linux_username

次に、このsmbpasswdコマンドを使用して、my_linux_usernameSamba を認証するためのパスワードを設定する必要があります。

sudo smbpasswd -a my_linux_username

/etc/shadowSMBプロトコルで使用されるパスワードハッシュアルゴリズムと互換性のないアルゴリズムで標準システムパスワードがハッシュされるため、この手順が必要です。クライアントが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認証が「内部で」動作する方法です。 、まだ役に立つかもしれません。)


1

私は急いでいて、ユーザーの作成などに集中する時間がなかったので、これを探していました...

ただ、できるだけ早くとしてのdebian 9マシンのデータを取らなければならなかったし、これはあなたがあなたもこれを行うことができますコマンドをスキップしないようにしたい場合、私は、の取り払わ最速の方法だったが、それは明らかに推奨されていませんあなたがAにいる場合を除き急いで

[mymfolder]
path = /mymfolder
writeable = yes
browseable = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root 

そして、あなたがこのルートに行くなら、「ホスト許可」オプションを使用してホストごとに制限できます。参照:samba.org/samba/docs/server_security.html
ctorx
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.