私はこの懸念について多くのユーザーの質問やブログを読みましたが、何も私の問題を解決しませんでした。
VirtualBoxにWindows10ゲストがインストールされたLinuxCENTOSホストがあります。 Linuxには、ディレクトリ(777)を共有し、Sambaユーザーデータベースに登録されている「myuser」という名前のユーザーがいます。このユーザーにはパスワードの制限はありません。 smb.conf
は次のようになります:
[global]
workgroup = WORKSPACE_SHARE
security = user
map to guest = bad user
[public]
path = /home/myuser/public
public = yes
writeable = yes
comment = smb share
printable = no
guest ok = yes
Windowsには、同じ名前( "myuser"、パスワードセットなし)、ファイルとプリンターの共有が有効、Microsoftクライアントが有効、Sambaワークグループと一致しプライベートネットワークを使用するワークグループセットのローカルユーザーがいます。
エクスプローラーでは、実際に共有フォルダー( "public")を含むLinuxホストを見ることができます。ただし、この共有フォルダーにアクセスしようとすると、エラーアラートが表示されます。アクセスするためのアクセス許可がありません...
インターネットで、「Windows 10はSMBv3を使用していますが、Sambaはまだサポートしていません」や、SMBv3をオフにする方法などを読みましたが、役に立ちませんでした。
Windowsでローカルセキュリティポリシーを変更しても、うまくいきませんでした: https://superuser.com/a/916835/408191
この奇妙な問題をどのように修正できますか?
一部のLinuxディストリビューションでは、カーネルにいわゆるSELinux実装があります。 "Security-Enhanced Linux" の略で、他のものと並んで、Samba共有を制限します。共有フォルダを作成する場合は、samba.conf
で便利なアクセス許可と定義を指定するだけでは不十分です。また、共有フォルダの正しい「セキュリティコンテキスト」を設定する必要があります。
次の権限マスクとセキュリティコンテキストでうまくいくはずです。
chmod -R 770 yoursharefolder
chcon -R -t samba_share_t yoursharefolder
さまざまなウィキからすでに知られているすべての条件も順守する必要があります。
smbpasswd -a youruser
samba.conf
は次のようになります。samba.conf
(すべての大文字の部分は、特定の環境に合わせてカスタマイズする必要があります):
[global]
workgroup = SAME_WORKGROUP_AS_CONFIGURED_IN_WINDOWS
server string = Samba Server %v
netbios name = Host_NAME_OF_YOUR_LINUX_MACHINE_ON_NETWORK
security = user
map to guest = bad user
dns proxy = no
[yourshare]
path = /PATH/TO/YOURSHARE
valid users = YOUR_WINDOWS_USER_NAME
browsable = yes
writeable = yes
guest ok = no
read only = no
directory mask = 0770
create mask = 0770
編集:chcon
による変更は永続的ではないことに注意してください。永続的なセキュリティコンテキストの変更を行うには、次のコマンドを使用します。
semanage fcontext -a -t samba_share_t /full/path/to/your/share/folder
...そしてそれを効果的にするために:
restorecon -v /full/path/to/your/share/folder