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

У меня есть хост 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 ответ1

0

Некоторые дистрибутивы Linux имеют в своем ядре так называемую реализацию SELinux. Он расшифровывается как «Security-Enhanced 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .