Отказано в доступе к Samba в Windows 10
Обновлено: 21.11.2024
Я хочу получить доступ к Linux (fedora 25 в виртуальной коробке), есть две проблемы:
Настроить с анонимным доступом, но Windows по-прежнему запрашивает учетную запись и пароль для доступа к Linux через samba.
Настроить с доступом к учетной записи, Windows выводит сообщение о том, что учетная запись или пароль неверны, но на самом деле они верны при проверке с помощью smbclient.
Настраивает с анонимным доступом.
В чем причина?
Я уверен, что действительные пользователи = root yangli guest являются проблемой. Удалите (или закомментируйте) и перезапустите Samba. Не уверен, что такое список чтения, но я бы удалил его на время тестирования.
2 ответа 2
Для Fedora 25 я не знаком с номерами версий Fedora, но я работаю с RHEL/Centos 7.x Если у вас включен selinux по умолчанию, вы можете попробовать установить setenforce 0 от имени root, чтобы временно установить selinux в разрешающий режим до следующей перезагрузки, посмотрите, разрешает ли это доступ к samba для работы. Если это так, то это проблема selinux, и в RHEL/Centos есть etc/samba/smb.conf.example, в котором объясняются связанные с samba команды selinux, необходимые для того, чтобы общие ресурсы samba работали с selinux, настроенным на принудительное выполнение.
Для вашей версии Fedora я бы использовал /etc/samba/smb.conf.example .
Для справки, вот мой рабочий smb.conf из более старой версии samba, показывающий, что я считаю минимумом, необходимым для его работы. Если вы слишком ограничите настройки, вы можете предотвратить успешное подключение, поэтому иногда лучше не указывать, что обычно означает разрешение для всех.
В вашем [myshare] удалите разрешенных хостов и действительных пользователей. Как только Samba заработает, рассмотрите возможность добавления ограничительных мер, подобных этим, по мере необходимости.
с гостем ok = no и сопоставлением с недопустимым пользователем guest, в окнах будут появляться всплывающие окна, дающие любому пользователю возможность ввести правильное имя пользователя linux и пароль. сопоставление с гостем никогда не предотвращает появление всплывающих окон, а это означает, что имя пользователя Windows должно совпадать с действительным локальным пользователем в Linux, для безопасности = пользователь. Вероятно, вам не нужно указывать протокол min/max, я делаю это в версии samba 3.6. Я не знаю, какая у вас версия samba в Fedora 25, если это samba 3.x, попробуйте указать протокол min/max.
При доступе к общему ресурсу Samba в Windows я вижу этот общий ресурс, но всякий раз, когда я пытаюсь получить к нему доступ, вводя то же имя пользователя и пароль, что и пользователь Samba, созданный с помощью sudo smbpasswd -a benjamin (то же, что и системный пользователь), я только получить "Доступ запрещен". Вот мои настройки smb
Где ls -dl /media/MEDIA2/TV/ читает
Ни версии Samba, ни журналов, ни информации о других версиях Windows. А вы пробовали монтировать общий ресурс с самого сервера?
4 ответа 4
Чтобы получить доступ к общему ресурсу samba, обратите внимание на следующее:
- Вы должны были создать системного пользователя с таким же именем пользователя. В этом случае введите следующую команду: useradd -s /sbin/nologin benjamin
- Если вы используете систему с поддержкой SELINUX (например, CentOS), попробуйте временно отключить ее, выдав setenforce 0
EDIT: поскольку проблема не устранена, попробуйте следующее:
- Возможно, ваш хост Windows добавляет к вашему имени пользователя неправильное доменное имя. На компьютере с Windows попробуйте войти, используя localhost\benjamin в качестве имени пользователя
- выполните pdbedit -L и проверьте, есть ли в списке пользователь benjamin. Если это так, установите простой пароль (вы можете изменить его позже) с помощью smbpasswd benjamin
- если пользователя benjamin нет в списке, попробуйте создать его заново, введя smbpasswd -a benjamin
- если это не работает, удалите файл passwd (он называется passwd.tdb; для справки, в системе CentOS 6.x он находится в /var/lib/samba/private/). Затем заново создайте пользователя, выдавшего smbpasswd -a benjamin
- если это все еще не работает, попробуйте использовать учетную запись root, выполнив команду smbpasswd -a root, и проверьте, можете ли вы войти в систему, используя пользователя root. Примечание: это только попытка. Покончив с этим, вы должны удалить запись root, выполнив команду smbpasswd -x root
- Последнее средство – увеличить уровень детализации журнала и посмотреть, сможете ли вы найти там подсказки. Для попыток аутентификации отредактируйте или добавьте следующую строку в свой журнал smb.conf level = 2 winbind:5 , проверьте журналы с помощью чего-то вроде tail -f /var/log/samba/log* и попробуйте войти в систему.
Спасибо, созданный мной пользователь имеет то же имя/пароль, что и существующий системный пользователь. Я отредактирую вопрос с дополнительной информацией
Пробовал 2-5 (он существовал в pdbedit), но возникла та же проблема. После одной попытки я получаю новую ошибку в Windows: «.\TVShows недоступен. Возможно, у вас нет разрешения на использование этого сетевого ресурса».
На ПК с Windows измените HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel на 4
Сетевая безопасность: уровень аутентификации LAN Manager обычно устанавливается на «Отправить LM и NTLM» — используйте сеансовую безопасность NTLMv2, если это согласовано групповыми политиками для совместимости резервного копирования со старыми клиентами.
Изменив LmCompatibilityLevel на 4, он будет отправлять только ответ NTLMv2
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel не существует на моем компьютере с Windows 10 Home. Какого типа он должен быть?
Возможно, вам нужно добавить рассматриваемого пользователя в вашу службу smb в Linux
У меня была такая же проблема. В конце концов решил это, удалив раздел на моем внешнем жестком диске и переделав файловую систему. С помощью этой конфигурации я могу копировать и вставлять на диск без входа в систему из Windows:
Я настроил группу и пользователя с помощью следующих команд:
Мой диск использовался в другой системе (я несколько раз переделывал один и тот же сервер), поэтому я думаю, что все еще были следы владения, которые переопределяли мои новые разрешения, поэтому, только после повторного разделения и повторного -чтобы файловая система работала с новыми разрешениями.
Windows Server 2012 R2 Datacenter Windows Server 2012 R2 Standard Windows Server 2012 R2 Essentials Windows Server 2012 R2 Foundation Windows 8.1 Enterprise Windows 8.1 Pro Windows 8.1 Windows Server 2012 Datacenter Windows Server 2012 Datacenter Windows Server 2012 Standard Windows Server 2012 Standard Windows Server 2012 Essentials Windows Server 2012 Foundation Windows Server 2012 Foundation Windows 8 Enterprise Windows 8 Pro Windows 8 Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Standard Windows Server 2008 R2 Foundation Windows 7 Ultimate Windows 7 Enterprise Windows 7 Professional Windows 7 Home Premium Windows 7 Home Basic Windows 7 Starter Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Foundation Windows Vista Ultimate Windows Vista Enterprise Windows Vista Business Windows Vista Home Premium Windows Vista Home Basic Windows Vista Starter Еще. Меньше
Симптомы
При попытке доступа к определенной папке, расположенной на сетевом устройстве (NetApp) Filer или на сервере Windows, поддерживающем SMB2, из системы на базе Windows через протокол Server Message Block (SMB) версии 2, доступ блокируется. отклонен. Эта проблема возникает в Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista и Windows Server 2008.
Примечание. Эта проблема не возникает, если вы отключите протокол SMB2 на клиенте или используете клиент Windows SMB, например Windows XP или Windows Server 2003.
Причина
Эта проблема возникает из-за того, что в целевой папке на общем ресурсе SMB отсутствуют записи управления доступом SYNCHRONIZE.
Разрешение
Чтобы решить эту проблему, используйте утилиту ICACLS, чтобы установить нужные разрешения, содержащие бит синхронизации.
Например, в командной строке введите следующую команду и нажмите клавишу ВВОД:
ICACLS h:\folder /grant domain\user:(RC,RD,REA,RA,X,S)
Примечание Список определенных прав через запятую в скобках:
RC – управление чтением
RD — чтение каталога данных/списка
REA – чтение расширенных атрибутов
RA — чтение атрибутов
Статус
Microsoft подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе "Относится к".
Дополнительная информация
Для проверки проблемы можно использовать следующие методы.
Убедитесь, что в NetApp Filer установлен бит синхронизации для папки.
Сетевая трассировка может показать ошибку DesiredAccess для процесса SMB2 CREATE в папке для пакета запроса и ответа. Ниже приведен пример журнала трассировки:
Инструмент AccessChk.exe доступен на сайте Windows Sysinternals для считывания настроек разрешений.
Например, выполните следующую команду:
C:\tools\Sysinternals\accesschk.exe –ldЗатем вы можете увидеть следующий результат, показывающий, что бит SYNCHRONIZE установлен:[2] ACCESS_ALLOWED_ACE_TYPE: BUILTIN\Users
[OBJECT_INHERIT_ACE]
[ CONTAINER_INHERIT_ACE]
[INHERITED_ACE]
FILE_LIST_DIRECTORY
FILE_READ_ATTRIBUTES
FILE_READ_EA
FILE_TRAVERSE
СИНХРОНИЗИРОВАТЬ
READ_CONTROL
Обсуждаемые в этой статье сторонние продукты производятся компаниями, независимыми от Microsoft. Microsoft не дает никаких гарантий, подразумеваемых или иных, в отношении производительности или надежности этих продуктов.
У меня возникла проблема с подключением из Windows 10 к общей общедоступной папке, на которой размещен мой сервер Ubuntu 20.04. Я мог получить к нему доступ на двух других компьютерах с Windows 10, но не на другом.
Общедоступные ресурсы Samba недоступны
При попытке открыть общий сетевой ресурс Samba я постоянно получал эту ошибку:
Ошибка сети: Windows не может получить доступ к \\hostname. Проверьте написание имени. В противном случае могут возникнуть проблемы с вашей сетью. Чтобы попытаться идентифицировать и решить сетевые проблемы, нажмите Диагностика.
0x80070035 сетевой путь не найден
Запуск сетевого использования в командной строке Windows вызвал еще одну ошибку.
Произошла системная ошибка 1272.
Вы не можете получить доступ к этой общей папке, поскольку политики безопасности вашей организации блокируют неавторизованный гостевой доступ. Эти политики помогают защитить ваш компьютер от небезопасных или вредоносных устройств в сети.
Эта ошибка возникает из-за ограничений локальной групповой политики Windows, не разрешающих доступ к «небезопасным гостевым входам». Похоже, Microsoft решила отключить доступ по умолчанию в новых обновлениях Windows из-за проблем с безопасностью.
Согласно сообщению Microsoft, они говорят:
Гостевой доступ в SMB2 отключен по умолчанию в Windows
Вредоносный компьютер, выдающий себя за законный файловый сервер, может разрешить пользователям подключаться в качестве гостей без их ведома. Корпорация Майкрософт рекомендует не изменять этот параметр по умолчанию. Если удаленное устройство настроено на использование гостевых учетных данных, администратор должен отключить гостевой доступ к этому удаленному устройству и настроить правильную аутентификацию и авторизацию.
Если вы знаете о последствиях для безопасности и хотите разрешить гостям доступ к вашим общедоступным общим ресурсам Samba, вы можете повторно включить его в regedit.
Regedit: установите для AllowInsecureGuestAuth значение 1
Нажмите на меню "Пуск", введите regedit и откройте его в административном режиме.
В regedit нажмите Control + F и найдите AllowInsecureGuestAuth . Это может занять минуту или около того, чтобы вернуть результат.
Когда вы получите результат, измените AllowInsecureGuestAuth на 1 .
Снова нажмите Control + F и нажмите «Найти далее».
Когда вы получите результат, измените AllowInsecureGuestAuth на 1 .
Снова нажмите Control + F, нажмите «Найти далее» и повторяйте описанные выше шаги, пока не измените все экземпляры AllowInsecureGuestAuth в regedit на 1 . В большинстве случаев в regedit есть только две записи.
Regedit: установите для параметра RequireSecuritySignature значение 1
В regedit нажмите Control + F и введите RequireSecuritySignature .
В группе флажков "Просмотреть" снимите все флажки, кроме "Значение", и нажмите "Найти далее".
Это может занять около минуты, прежде чем будет возвращен результат.
Когда вы получите результат, измените RequireSecuritySignature на 1 .
Снова нажмите Control + F, нажмите «Найти далее» и повторяйте описанные выше шаги, пока все экземпляры RequireSecuritySignature не будут изменены на 1 . В большинстве случаев в regedit есть только две записи.
Все готово. Теперь у вас должен быть доступ к сетевому ресурсу. Возможно, вам потребуется перезагрузить компьютер с Windows 10, чтобы изменения вступили в силу.
Сообщите мне, помогло ли это. Подпишитесь на меня в Twitter, Facebook и YouTube или 🍊 купите мне смузи.
Читайте также: