777 権限なしで Windows で書き込み可能な Samba 共有を作成するにはどうすればよいですか?

777 権限なしで Windows で書き込み可能な Samba 共有を作成するにはどうすればよいですか?

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/shareWindowsで書き込み操作を実行する必要があります。

私が望むのは、.netのLinux所有者のLinux資格情報を提供した後、Windowsが書き込みアクセスを提供することです/path/to/share

私は努力しました:

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

その後、Windowsは資格情報を要求しますが、私が何を入力しても常に拒否されます。

777 権限を付与せずに Windows ドメインシステムから Samba 共有への書き込みアクセス権を取得する正しい方法は何ですか?

答え1

共有専用のユーザーを作成してそれを指定することをお勧めします。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

答え2

の共有設定には、smb.conf共有に書き込むことができるユーザーおよび/またはグループの名前を指定する行が必要ですwrite list = ...

例:

[myshare]
...
write list = my_linux_username

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

sudo smbpasswd -a my_linux_username

/etc/shadow標準システムパスワードのハッシュアルゴリズムは、SMBプロトコルで使用されるパスワードハッシュアルゴリズムと互換性がないため、この手順が必要です。クライアントがSMB認証パケットを送信すると、ハッシュされたパスワードが含まれます。同じアルゴリズムを使用する他のパスワードハッシュとのみ比較できます。

(過去1000年間の非常に古いガイドラインでは、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認証が「内部的に」機能する方法であり、以前のバージョンのSambaを処理する必要がある場合はまだ役に立ちます。 )

答え3

私の場合は、デフォルトのタスク設定(SABAゲスト機能を使用すると/ myfolderアクセス​​に適しています)[your_SAMBA-Unix_share_user_account]):

[global]
guest account = [your_SAMBA-Unix_share_user_account]

[mymfolder]
path = /myfolder
browseable = yes
read only =no
guest ok =yes

同時に複数のユーザーがログインすることは許可されていないように見えるため、このSAMBAサーバーからWindowsシステム上の他のマップされたドライブを切断することが重要です。

答え4

yaegashiの答えは次のとおりです。

    create mask = 0644
    directory mask = 0755
    force user = shareuser

しかし、これは私には効果がありません。私は次の提案に従いました。この投稿働くもの:

    create mask = 0660
    directory mask = 0770
    force user = shareuser

また、共有権限を正しく設定する必要があります。元の答え

関連情報