Доступ к общему ресурсу Samba из Windows 10 в VirtualBox

Доступ к общему ресурсу Samba из Windows 10 в VirtualBox

Я прочитал много вопросов пользователей и блогов по этой теме, но ничего не помогло решить мою проблему.

У меня есть хост Linux CENTOS с гостевой ОС Windows 10, установленной в VirtualBox. В Linux есть пользователь с именем "myuser", который разделяет каталог (777) и зарегистрирован в базе данных пользователей Samba. У этого пользователя нет ограничений по паролю. Выглядит 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, и используется частная сеть.

В проводнике я вижу хост Linux, который действительно содержит общую папку ("public"). Но при попытке доступа к этой общей папке появляется сообщение об ошибке: У вас нет прав доступа...

В интернете я читал такие вещи, как «Windows 10 использует SMBv3, но Samba пока его не поддерживает» и как отключить SMBv3, но это не помогло.

Даже изменение локальных политик безопасности в Windows не помогло:https://superuser.com/a/916835/408191

Как мне исправить эту странную проблему?

решение1

Некоторые дистрибутивы Linux имеют в своем ядре так называемую реализацию SELinux. Это означает«Linux с повышенной безопасностью»и, помимо прочего, ограничивает общие ресурсы Samba. Если вы хотите создать общую папку, то недостаточно указать удобные разрешения на доступ и определение в samba.conf. Вам также необходимо установить правильный «Контекст безопасности» общей папки.

Следующая маска разрешений и контекст безопасности должны помочь:

chmod -R 770 yoursharefolder
chcon -R -t samba_share_t yoursharefolder

Также должны быть соблюдены все условия, которые уже известны из различных вики:

  • Пользователь Unix как владелец общего ресурса должен быть добавлен в базу данных пользователей Samba:smbpasswd -a youruser
  • На вашем компьютере с Windows должен быть пользователь с тем же именем и паролем, которые установлены в базе данных Samba.
  • Ваш 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

Связанный контент