- Печать
Страницы: [1] 2 Все Вниз
Тема: Не открываются папки Ubuntu из-под Windows («Не найден сетевой путь»). (Прочитано 14411 раз)
0 Пользователей и 1 Гость просматривают эту тему.
M.A.S.47
Здравствуйте, линуксоиды!
Поставил Ubuntu совсем недавно, мало пока в чём разбираюсь. Столкнулся с проблемой:
Windows 7 не может открыть расшаренные папки Ubuntu. Появляется окно с ошибкой «Не найден сетевой путь». Из Ubuntu на Windows зайти можно, правда довольно медленно всё открывается, и иногда появляется окно с ошибкой. Помогите, пожалуйста. Я уже не одну тему по этому поводу прочитал, в Google искал, но безрезультатно.
Вот моя конфигурация Samba (/etc/samba/smb.conf,) testparm -s:
Вот такие проблемы чаще всего и отталкивают от Linux, но я очень хочу на нём остаться.
« Последнее редактирование: 08 Апреля 2011, 23:30:32 от M.A.S.47 »
fisher74
Чтобы посмотреть как самба считает конфиг вводите в консоле
testparm -s
А сама samba-то работает?
belobog1
а вы случайно ни на одном и том же компьютере пытаетесь через вин увидеть линь?(то бишь на одном компьютере и виндовс и Ubuntu, дуалбут иначе говоря)
ubuntu_windows_mac os x_open solaris_чтоб ещё впихнуть в железку
fisher74
Ого…. я до такого даже не додумался бы…
Что? Были реальные случаи?
M.A.S.47
fisher74, обновил, спасибо. Я не знаю, насколько хорошо она работает, но Windows-папки открываются очень медленно, иногда выскакивают окна с ошибками («Не удалось подключить местоположение» или просто долго висит «Открывается…»).
belobog1, у меня в локальной сети два компьютера, под Windows 7 и Ubuntu.
« Последнее редактирование: 08 Апреля 2011, 23:37:57 от M.A.S.47 »
belobog1
у меня хр и Ubuntu по локалке соеденены и нормально в обоих направлениях работают, правда я расшаривал самбу через webmin.
ubuntu_windows_mac os x_open solaris_чтоб ещё впихнуть в железку
shumtest
M.A.S.47
Workgroup = WORKGROUP, прописано…
shumtest
Workgroup = WORKGROUP, прописано…
в конфиге, в первом посте, нет.
M.A.S.47
Workgroup = WORKGROUP, прописано…
в конфиге, в первом посте, нет.
Я не знаю, почему так. В самом smb.conf это есть.
AnrDaemon
Я не знаю, почему так. В самом smb.conf это есть.
testparm -sv | grep -i workgroup
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.
Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…
mdma
Как вы пытаетесь открыть шару из-под вин? (в смысле что указываете в адресе)
« Последнее редактирование: 10 Апреля 2011, 00:46:42 от mdma »
a.k.a Shaman
M.A.S.47
Ввёл в консоли testparm -sv, получил следующее
Я ввожу в консоли sudo nautilus, нахожу нужную папку, ПКМ-Общий доступ, ставлю везде галочки. Потом в Windows 7 открываю «Сеть», компьютер с Ubuntu. Там все папки расшаренные прекрасно отображаются, но зайти ни в одну не удаётся. Появляется сообщение «Windows не может получить доступ к \U-210-Ubuntu<имя папки>. Не найден сетевой путь».
P.S. А что это за rlimit, который меньше виндовского?
AnrDaemon
Ну естественно, от рута расшарили — только рут и имеет доступ в юзершары…
Либо включайте usershare allow guests, либо расшаривайте нормально.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.
Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…
M.A.S.47
AnrDaemon, usershare allow guests включен. А как мне расшарить не от root? У меня появляется сообщение «Не удалось изменить права доступа к папке».
И, я понял, не работает только с NTFS-папками. На папки из home заходит спокойно.
« Последнее редактирование: 12 Апреля 2011, 16:46:38 от M.A.S.47 »
- Печать
Страницы: [1] 2 Все Вверх
Делаю вашу работу:
-
sudo apt-get install samba smbclient smbfs
-
sudo nano /etc/samba/smb.conf
Заполняем по следующему принципу(стандартный кофиг можно удалить, или сбекапить):
[global] //главная секция настроек
workgroup = home //имя локальной группы
netbios name = my system //нетбиос имя компьютера
server string = my file server //строка инфо о сервере
security = share //уровень доступа
browseable = yes //возможность просматривать вложенные каталоги
[my_share] //имя шары
path = /home/user/my_share //путь к расшариваемому каталогу
comment = for all //комментарий к шаре
readonly = No //только чтение (выкл.)
guest ok = Yes //возможность работы с каталогом пользователей без учетной записи на сервере
Если хотите, что бы пользователи могли писать в каталог:
-
sudo chmod 777 /home/user/my_share
-
readonly ставим в yes
После проделанных операций:
sudo smbd restart
sudo nmbd restart
Или просто
sudo reboot
P.S. Все это есть на первой странице поиска, первая строчка. Собственно, когда мне нужно было, я там и нашел. НЕ ЛЕНИТЕСЬ ВПРЕДЬ!
По поводу «Локальная сеть имеет домен .local, служба avahi будет отключена…»:
Про avahi читаем на вики, тут! Если не нужна, можно выпилить командой sudo apt-get purge avahi-daemon, только аккуратно, что бы ничего лишнего за собой не потянула.
Вы, наверное, не раз сталкивались с проблемой, что Ubuntu не видит сеть Windows или Windows не видит сетевую шару Linux. Такая проблема характерна для многих дистрибутивов с окружением Gnome. Ситуация довольно неоднозначная, раньше причиной этому был баг в GVFS, потом появилось ещё несколько осложняющих дело факторов.
В этой статье мы рассмотрим что делать если Ubuntu не видит шары Windows или Samba, как к ним всё таки подключится и можно ли решить проблему, сделать так чтобы Nautilus и Dolphin начали всё таки видеть сетевые ресурсы.
Почему Ubuntu не видит сеть Windows или Samba?
Нужно разобраться почему Ubuntu не может увидеть сеть Windows. Начиная с Windows 10 в компании Microsoft решили отказаться от старого протокола SMB1 и использовать только SMB2 и SMB3. Но в этих протоколах нет сетевого обнаружения. Для сетевого обнаружения в Windows теперь используется новый сервис WS-Discovery. В Nautilus для отображения сетевых ресурсов используется либо avahi либо протокол SMB1. Поэтому увидеть шару Windows не получится, не включив обратно устаревший протокол в реестре. Windows по умолчанию шары Samba тоже видеть не будет, потому что новый WS-Discovery в Samba не поддерживается. Ещё в 2015 году были предложены патчи для Samba добавляющие эту функциональность, но разработчики решили, что оно им не нужно. Поэтому если вы хотите чтобы Windows видела Samba, нужно отдельно установить сервис WSDD.
Но это ещё не всё. Начиная с версии Samba 4.11 разработчики решили, что они ничем не хуже Microsoft и отключили по умолчанию поддержку протокола SMB1. Теперь Nautils и Dolphin перестали видеть не только Windows шары, но и Linux тоже. Решается проблема либо установкой на Samba сервер Avahi, либо включением поддержки старого протокола SMB1 на сервере Samba.
Настойка сервера Samba
1. Включение протокола SMB1
Для того чтобы активировать протокол SMB1 в Samba необходимо добавить такие строчки в /etc/samba/smb.conf в секцию global:
sudo vi /etc/samba/smb.conf
server min protocol = NT1
client min protocol = NT1
min protocol = NT1
После этого надо перезапустить Samba.
sudo systemctl restart smbd
sudo systemctl restart nmbd
Хочу обратить ваше внимание, что у меня всё заработало только после того как я перезагрузил и сервер и клиент. Видимо что-то где-то кэшируется.
2. Настройка имени хоста
Имя хоста вашего компьютера, выводимое командой hostname должно совпадать со значением в файле /etc/hosts и со значением параметра netbios name в файле /etc/samba/smb.conf. Например:
hostname
cat /etc/samba/smb.conf
Регистр букв не имеет значения.
3. Установка Avahi
Если предыдущий способ не поможет, то установка Avahi должна помочь. Samba не будет отображаться в сетях Windows, но зато появится в сетевом окружении в Nautilus. Для установки Avahi выполните:
sudo apt install avahi-daemon avahi-utils
После этого сервис стоит запустить и добавить в автозагрузку:
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
Проверить доступные сервисы можно командой:
avahi-browse --all
Среди них должна быть ваша шара, обозначенная как Microsoft Windows Network local.
4. Установка WSDD
Сервис WSDD нужен для того чтобы вашу шару было видно из Windows. Можно использовать сервис wsdd2 из этого репозитория. Его надо собрать из исходников, но в этом нет ничего сложного. Сначала склонируйте репозиторий:
git clone https://github.com/Andy2244/wsdd2.git
Затем перейдите в папку с проектом:
cd wsdd2
Выполните make для сборки:
make
Затем установите программу, она только скопирует исполняемый файл и службу systemd в нужные директории:
sudo make install
Осталось запустить службу:
sudo systemctl daemon-reload
sudo systemctl enable --now wsdd2
Теперь Windows сможет видеть ваш сервер Samba. Таким образом если всё сделать правильно, то все всех будут видеть.
1. Общий доступ в Windows
Убедитесь, что в Windows общий доступ был включён. Если общий доступ отключен, то вы не сможете никак получить доступ к ресурсам. Откройте проводник и перейдите в пункт Сеть. Если сетевой доступ отключён, то система выдаст соответствующее предупреждение:
Кликните по нему чтобы включить общий доступ, затем выберите Включить сетевое обнаружение и общий доступ к файлам.
После этого система ещё раз спросит надо ли разрешить доступ для всех общественных сетей. Ответьте утвердительно:
После этого вы сможете получить доступ к общим ресурсам этого компьютера.
2. Включение SMB1 в Windows
Для того чтобы включить поддержку протокола SMB1 в Windows 10 откройте поиск и наберите Включение компонентов. Затем откройте утилиту Включение и выключение компонентов Windows:
Дальше найдите пункт SMB1.0 CIFS File Sharing Support и установите напротив него галочку:
Затем необходимо перезапустить компьютер:
После этого Ubuntu начнёт видеть вашу шару Windows и вы сможете к ней подключится.
Настройка клиента
Исходя из выше перечисленного, клиент скорее всего не виноват, но можно попробовать его настроить чтобы быть уверенным точно. Как я уже написал выше Nautilus для подключения и просмотра общих папок Windows и Samba использует виртуальную файловую систему gvfs. А та, в свою очередь использует библиотеку libsmbclient для получения необходимых данных. Поэтому мы можем попытаться исправить ситуацию переопределив некоторые параметры в /etc/samba/smb.conf. Но работает это далеко не всегда.
1. Установить Samba
Если файловый сервер Samba у вас не установлен, то его надо установить для того чтобы был создан файл /etc/samba/smb.conf с параметрами по умолчанию. Они потом будут использоваться библиотекой libsmbclient и самой утилитой smbclient, которую вы можете применять для тестирования. Для установки выполните:
sudo apt install samba
Проверьте конфигурационный файл Samba на ошибки с помощью такой команды:
testparm
2. Рабочая группа
По умолчанию используется рабочая группа WORKGROUP. Убедитесь, что ваша рабочая группа имеет именно это имя, также убедитесь, что в /etc/samba/smb.conf задано правильное имя рабочей группы в параметре workgroup:
sudo vi /etc/samba/smb.conf
workgroup = WORKGROUP
3. Версия протокола
В современных системах Windows для общего доступа к папкам используется файловая система CIFS, использующая современные версии протоколов SMB2 и SMB3. Эти протоколы не поддерживают обзор доступных общих папок так, как это ожидает получить Nautilus. Для того чтобы всё работало надо использовать старый протокол NT1. Чтобы его включить добавьте параметр client max protocol после параметра workgroup:
client max protocol = NT1
После этого сохраните изменения и перезагрузите компьютер и проверьте.
4. Правильный порядок разрешения имён
Неверный порядок разрешения сетевых имен тоже может стать проблемой. Чтобы исправить его найдите в smb.conf параметр и приведите его к такому виду:
name resolve order = bcast lmhosts host wins
Здесь первым используется bcast, широковещательные сообщения, которые рассылаются по вашей локальной сети и ищут компьютеры с общими папками.
5. Не тот интерфейс
Если в вашем компьютере несколько сетевых интерфейсов, возможно smbclient пытается использовать не тот интерфейс. Чтобы посмотреть список интерфейсов используйте команду:
ls /sys/class/net
Затем найдите в /etc/samba/smb.conf параметр interface и замените в его значении eth0 на имя вашего интерфейса, который обеспечивает связь с нужной локальной сетью. Например на enp0s8:
interfaces = 127.0.0.0/8 enp0s8
После этого надо перезапустить службы Samba:
sudo systemctl restart smbd
sudo systemctl restart nmbd
6. Отладка
Если сеть Windows всё ещё не работает, вы можете попытаться отлаживать GVFS чтобы понять где именно возникает проблема и в чём её суть. Для этого надо завершить текущий сервер GVFS и запустить свой в терминале с включённой опцией отладки. Для этого выполните:
pkill gvfs; pkill nautilus
GVFS_DEBUG=all GVFS_SMB_DEBUG=10 $(find /usr/lib* -name gvfsd 2>/dev/null) --replace 2>&1 | tee gvfsd.log
Затем откройте Nautils и войдите в сетевое окружение, сеть Windows. При этом в терминале будут выводится сообщения об ошибках работы службы. Вы можете использовать эти сообщения чтобы искать информацию в Google или попросить помощи на форумах.
7. Проблема в GVFS
Баг в GVFS, о котором я писал выше наблюдался для Samba версии 4.8 и ниже. Если сервер поддерживает протокол более высокого уровня, то клиент пытается использовать этот протокол, например SMB2 или SMB3, но на этих протоколах не работает отображение доступных ресурсов. Если у вас именно эта проблема, то для полного решения придется ждать обновления или использовать обходное решение описанное ниже.
8. Подключение напрямую
Даже если у вас не работает обнаружение сетевых ресурсов Windows, вы все ещё можете подключится к нужному компьютеру и получить с него файлы. Откройте пункт Другие места на левой панели Nautilus. Внизу окна вы увидите надпись Подключится к серверу введите smb://адрес_сервера в поле слева и нажмите Enter:
После этого система предложит ввести имя пользователя и пароль для доступа к общему ресурсу. Этот пользователь должен реально существовать на машине, к которой вы собираетесь подключится.
Введите пароль и вы увидите доступные общие папки:
Выводы
Если всё будет сделано правильно то Linux увидит вашу шару Windows или Samba:
В этой статье мы кратко рассмотрели почему Ubuntu не видит сеть Windows, а также как исправить эту проблему. Если проблему с сетевым обнаружением устранить не удается, вы всегда можете попробовать подключится вручную. Это не решает основную проблему, но позволяет получить нужные файлы. Вы знаете другие способы решения? Поделитесь ими в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Если вы из Windows 10 или 11 не можете открыть сетевые папки на других сетевых устройствах (NAS, Samba сервера Linux) или на компьютерах со старыми версиями Windows (Windows 7/ XP /2003), скорее всего проблема связана с тем, что в вашей версии Windows отключена поддержка устаревших и небезопасных версий протокола SMB (используется в Windows для доступа к общим сетевым папкам и файлам). В современных версиях Windows 10 и в Windows 11 по-умолчанию отключен протокол SMBv1 и анонимный (гостевой) доступ к сетевым папкам по протоколу SMBv2 и SMBv3.
Microsoft планомерно отключает старые и небезопасные версии протокола SMB во всех последний версиях Windows. Начиная с Windows 10 1709 и Windows Server 2019 (как в Datacenter так и в Standard редакциях) в операционной системе по умолчанию отключен протокол SMBv1 (помните атаку шифровальщика WannaCry, которая как раз и реализовалась через дыру в SMBv1).
Конкретные действия, которые нужно предпринять зависят от ошибки, которая появляется в Windows при доступе к общей сетевой папке и от настроек удаленного SMB сервера, на котором хранятся общие папки.
Содержание:
- Вы не можете получить гостевой доступ к общей папке без проверки подлинности
- Вашей системе необходимо использовать SMB2 или более позднюю
- Нет доступа к сетевой папке, у вас нет прав доступа
- Дополнительные способы проверки доступа к сетевой папке в Windows
Вы не можете получить гостевой доступ к общей папке без проверки подлинности
Начиная с версии Windows 10 1709 (Fall Creators Update) Enterprise и Education пользователи стали жаловаться, что при попытке открыть сетевую папку на соседнем компьютере стала появляться ошибка:
Вы не можете получить доступ к этой общей папке, так как политики безопасности вашей организации блокируют гостевой доступ без проверки подлинности. Эти политики помогают защитить ваш компьютер от небезопасных или вредоносных устройств в сети.
An error occurred while reconnecting Y: to \nas1share Microsoft Windows Network: You can’t access this shared folder because your organization’s security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.
При этом на других компьютерах со старыми версиями Windows 8.1/7 или на Windows 10 с билдом до 1709, эти же сетевые каталоги открываются нормально. Причина в том, что в современных билдах Windows 10 (начиная с 1709) по умолчанию запрещен сетевой доступ к сетевым папкам под гостевой учетной записью по протоколу SMBv2 (и ниже). Гостевой (анонимный) доступ подразумевают доступ к сетевой папке без аутентификации. При доступе под гостевым аккаунтом по протоколу SMBv1/v2 не применяются такие методы защиты трафика, как SMB подписывание и шифрование, что делает вашу сессию уязвимой против MiTM (man-in-the-middle) атак.
При попытке открыть сетевую папку под гостем по протоколу SMB2, в журнале клиента SMB (Microsoft-Windows-SMBClient) фиксируется ошибка:
Log Name: Microsoft-Windows-SmbClient/Security Source: Microsoft-Windows-SMBClient Event ID: 31017 Rejected an insecure guest logon.
Данная ошибка говорит о том, что ваш компьютер (клиент) блокирует не аутентифицированный доступ под аккаунтом guest.
Чаще всего с этой проблемой можно столкнуться при использовании старых версий NAS (обычно для простоты настройки на них включают гостевой доступ) или при доступе к сетевым папкам на старых версиях Windows 7/2008 R2 или Windows XP /2003 с настроенным анонимным (гостевым) доступом (см. таблицу поддерживаемых версий SMB в разных версиях Windows).
Microsoft рекомендует изменить настройки на удаленном компьютере или NAS устройстве, который раздает сетевые папки. Желательно переключить сетевой ресурс в режим SMBv3. А если поддерживается только протокол SMBv2, тогда нужно настроить доступ с аутентификацией. Это самый правильный и безопасный способ исправить проблему.
В зависимости от устройства, на котором хранятся сетевые папки, вы должны отключить на них гостевой доступ.
- NAS устройство – отключите гостевой доступ в настройках вашего NAS устройства (зависит от модели);
- Samba сервер на Linux — если вы раздаете SMB папку с Linux, добавьте в в секции [global] конфигурационного файла smb.conf строку:
map to guest = never
А в секции с описанием сетевой папки запретить анонимный доступ:
guest ok = no
- В Windows вы можете включить общий доступ к сетевым папкам и принтерам с парольной защитой в разделе Control PanelAll Control Panel ItemsNetwork and Sharing CenterAdvanced sharing settings. Для All Networks (Все сети) в секции “Общий доступ с парольной защитой” (Password Protected Sharing) измените значение на “Включить общий доступ с парольной защитой” (Turn on password protected sharing). В этом случае анонимный (гостевой) доступ к папкам будет отключен и вам придется создать локальных пользователей, предоставить им доступ к сетевым папкам и принтерам и использовать эти аккаунты для сетевого доступа к общим папкам на этом компьютере..
Есть другой способ – изменить настройки вашего SMB клиента и разрешить доступ с него на сетевые папки под гостевой учетной записью.
Этот способ нужно использовать только как временный (!!!), т.к. доступ к папкам без проверки подлинности существенно снижает уровень безопасности ваших данных.
Чтобы разрешить гостевой доступ с вашего компьютера, откройте редактор локальных групповых политик (gpedit.msc) и перейдите в раздел: Конфигурация компьютера -> Административные шаблоны -> Сеть -> Рабочая станция Lanman (Computer Configuration ->Administrative templates -> Network (Сеть) -> Lanman Workstation). Включите политику Enable insecure guest logons (Включить небезопасные гостевые входы).
Обновите настройки групповых политик в Windows с помощью команды:
gpupdate /force
В Windows 10 Home, в которой нет редактора локальной GPO,вы можете внести аналогичное изменение через редактор реестра вручную::
HKLMSYSTEMCurrentControlSetServicesLanmanWorkstationParameters “AllowInsecureGuestAuth”=dword:1
Или такими командами:
reg add HKLMSYSTEMCurrentControlSetServicesLanmanWorkstationParameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f
reg add HKLMSoftwarePoliciesMicrosoftWindowsLanmanWorkstation /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f
Вашей системе необходимо использовать SMB2 или более позднюю
Другая возможная проблема при доступе к сетевой папке из Windows 10 – поддержка на стороне сервера только протокола SMBv1. Т.к. клиент SMBv1 по умолчанию отключен в Windows 10, то при попытке открыть шару или подключить сетевой диск вы можете получить ошибку:
Не удалось выполнить сопоставление сетевого диска из-за следующей ошибки. Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.
You can’t connect to the file share because it’s not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. Your system requires SMB2 or higher.
При этом соседние устройства SMB могут не отображаться в сетевом окружении и при открытии сетевых папок по UNC пути может появляться ошибка 0x80070035.
Сообщение об ошибки явно указывает, что сетевая папка поддерживает только SMBv1 для доступа к файлам. В этом случае нужно попытаться перенастроить удаленное SMB устройство для поддержки как минимум SMBv2 (правильный и безопасный путь).
Если сетевые папки раздает Samba сервер на Linux, вы можете указать минимально поддерживаемую версию SMB в файле smb.conf так:
[global] server min protocol = SMB2_10 client max protocol = SMB3 client min protocol = SMB2_10 encrypt passwords = true restrict anonymous = 2
В Windows 7/Windows Server 2008 R2 вы можете отключить SMBv1 и разрешить SMBv2 так через реестр:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB1 -Type DWORD -Value 0 –Force
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB2 -Type DWORD -Value 1 –Force
В Windows 8.1 отключите SMBv1, разрешите SMBv2 и SMBv3 и проверьте что для вашего сетевого подключения используется частный или доменный профиль:
Disable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"
Set-SmbServerConfiguration –EnableSMB2Protocol $true
Если ваше сетевое устройство (NAS, Windows XP, Windows Server 2003), поддерживает только протокол SMB1, в Windows 10 вы можете включить отдельный компонент SMB1Protocol-Client. Но это не рекомендуется!!!
Если удаленное устройство требует использовать SMBv1 для подключения, и этот протокол отключен в вашем устройстве Windows, в Event Viewer появляется ошибка:
Log Name: Microsoft-Windows-SmbClient/Security Source: Microsoft-Windows-SMBClient Event ID: 32000 Description: SMB1 negotiate response received from remote device when SMB1 cannot be negotiated by the local computer.
Запустите консоль PowerShell и проверьте, что SMB1Protocol-Client отключен (
State: Disabled
):
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client
Включите поддержку протокола SMBv1 (потребуется перезагрузка):
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client
Также вы можете включить/отключить SMBv1 в Windows 10 и 11 из меню
optionalfeatures.exe
-> SMB 1.0/CIFS File Sharing Support –> SMB 1.0/CIFS Client.
В Windows 10 1709 и выше клиент SMBv1 автоматически удаляется, если он не использовался более 15 дней (за это отвечает компонент SMB 1.0/CIFS Automatic Removal).
В этом примере я включил только SMBv1 клиент. Не включайте компонент SMB1Protocol-Server, если ваш компьютер не используется устаревшими клиентами в качестве сервера для хранения общих папок.
После установке клиента SMBv1, вы должны без проблем подключиться к общей сетевой папке или принтеру. Однако, нужно понимать, что использование данного обходного решения не рекомендовано, т.к. подвергает снижает уровень безопасности.
Нет доступа к сетевой папке, у вас нет прав доступа
При подключении к сетевой папке на другом компьютере может появится ошибка:
Нет доступа к \ComputerNameShare. Возможно у вас нет прав на использование этого сетевого ресурса. Обратитесь к системному администратору этого сервера для получения соответствующих прав доступа.
Network Error Windows cannot access \PC12Share You do not have permissions to access \PC12Share. Contact your network administrator to request access.
При появлении это ошибки нужно:
- Убедиться, что пользователю, под которым вы подключаетесь к сетевой папке, предоставлены права доступа на сервере. Откройте свойства общей папке на сервере и убедитесь что у вашего пользователя есть права доступа.
Проверьте разрешения сетевой шары на сервере с помощью PowerShell:
Get-SmbShareAccess -Name "tools"
Затем проверьте NTFS разрешения:
get-acl C:tools |fl
Если нужно, отредактируйте разрешения в свойствах папки. - Проверьте, что вы используете правильные имя пользователя и пароль для доступа к сетевой папки. Если имя и пароль не запрашиваются, попробуйте удалить сохраненные пароли для доступа к сетевой папке в диспетчере учетных записей Windows. Выполните команду
rundll32.exe keymgr.dll, KRShowKeyMgr
и удалите сохраненные учетные данные для доступа к сетевой папке.
При следующем подключении к сетевой папки появится запрос имени и пароля. Укажите имя пользователя для доступа к папке. Можете сохранить его в Credential Manager или добавить вручную.
Дополнительные способы проверки доступа к сетевой папке в Windows
В этом разделе указаны дополнительные способы диагностики при проблема с открытием сетевые папок в Windows:
0
1
Около года назад расшаривал папку в Debian, для доступа с Win7. В прошлый раз все получилось отлично. Делал это все в графическом интерфейсе. Сейчас же делаю все через терминал. Выполнив все те же действия (установка самба, роспись конфигурации) не могу получить доступ к этой папке пишет, «Windows не может получить доступ к (адресу)». Перепроверил все, что пришло в голову. Рабочая группа та, обе машины находятся в одной подсети и видят друг друга, конфигурация написана верно. Подскажите, что это может и с чем связана проблема
[global]
workgrop = WORKGROUP
server string = SAMBA SERVER %v
netbios name = srvtest
security = user
map to guest = bad User
dns proxy = no
name resolve order = bcast host
unix extensions = on
wide links = yes
fiolow symlinks = yes
dos charset = cp866
unix charset = UFT8
load printers = no
show add printer wizard = no
printcap name = /dav/null
disable spoolss = yes
hide dot files = yes
[test]
parh = /home/test
guest ok = yes
writable = yes
browsable = yes
read onlu = no
create mask = 0777
directory mask = 0777
[allaccess]
parh = /samba/allaccess
guest ok = yes
writbale = yes
browsable = yes
read only = no
Эта статья по сути будет подборкой «Best practiсe» для системных администраторов Samba. Основой статьи является глава Troubleshooting Techniques из книги Sam’s Teach Yourself Samba in 24 Hours. Мы постараемся рассмотреть наиболее распространенные ошибки при настройке Samba.
Согласитесь, ужасно поменять двигатель в машине, а потом выяснить, что не ехала она из-за отсутствия бензина! Может, это и не лучшая метафора, но многие системные администраторы тратят время зря, не проверив в первую очередь самые очевидные вещи. Посмотрите, как примерно должен выстраиваться процесс поиска и решения проблем с Samba:
Проблемы, представленные на нижних уровнях этой «пирамиды», являются «фундаментом» для более высоких уровней. Не удивительно, что Windows-клиент не может получить доступ к файловому северу на Samba, если сервер отключен от сети. Конечно, не стоит воспринимать этот рисунок буквально, как руководство к действию (скажем, лог-файлы можно посмотреть всегда), но начинать стоит все-таки с проблем нижних уровней. Чем выше мы поднимаемся, тем больше углубляемся в принципы работы Samba.
В поисках решения проблемы с Samba стоит в первую очередь обратиться к следующим ресурсам:
•HOWTO, опубликованные на сайте;
•тематические сайты и форумы, например: http://samba-doc.ru/, http://citforum.ru/operating_systems/linux/samba/;
•разделы документации по Samba для того или иного дистрибутива (например, http://help.ubuntu.ru/wiki/samba, http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-samba.html или http://wiki.russianfedora.ru/index.php?title=Samba);
•http://stackoverflow.com/ — не забывайте про этот сайт, если у вас есть конкретный вопрос или проблема;
•вспомогательные утилиты, входящие в состав Samba, а также различные программы-анализаторы трафика (например, Wireshark).
Мы в первую очередь рассмотрим самостоятельное решение возникающих проблем, но не стоит забывать про возможную помощь сообщества. Это может серьезно сэкономить вам время и силы.
Описание тестовой среды
Для начала — несколько слов о тестовой среде. Условия следующие:
•Samba-сервер называется TROUBLE и имеет IP-адрес 192.168.7.75 и маску 255.255.255.0.
•smbd и nmbd запускаются как демоны.
•Windows-клиент называется win-client.
•Windows-клиент использует адрес 192.168.7.135 с сетевой маской 255.255.255.0.
•И win-client, и TROUBLE находятся в одной подсети, так что широковещательный запрос дойдет с одного хоста на другой.
•И win-client, и TROUBLE являются членами рабочей группы LAB.
•Samba-сервер использует следуюший smb.conf:
[global] netbios name = TROUBLE
workgroup = LAB security = user encrypt passwords = yes
[public] path = /tmp
read only = no
УРОВЕНЬ 1
Работоспособность сетевого соединения и файла конфигурации
Основание нашей «пирамиды» составляют три основных проблемы:
•корректно работающее TCP/IP подключение;
•соответствие маски и широковещательных адресов на серверах и клиентах;
•работоспособность файла smb.conf.
TCP/IP
Для проверки TCP/IP в первую очередь используется команда ping. Если описать протокол ICMP очень упрощенно, то хост отправляет запрос на сервер и спрашивает «Ты жив?». Если сервер не отвечает, хост приходит к выводу, что тот не подключен к сети и, следовательно, недоступен.
$ ping win-client
PING win-client (192.168.7.135) from 192.168.1.74 : 56(84) bytes of data.
64 bytes from win-client (192.168.7.135): icmp_seq=0 ttl=255 time=2.138 msec
64 bytes from win-client (192.168.7.135): icmp_seq=1 ttl=255 time=2.181 msec
64 bytes from win-client (192.168.7.135): icmp_seq=2 ttl=255 time=2.263 msec
--- ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/mdev = 2.138/2.194/2.263/0.051 ms
Также очень важным является правильное функционирование DNS. Если не удастся разрешить имя, появится сообщение вроде этого:
$ ping win-client
ping: unknown host win-client
Если такое происходит, первое, что стоит сделать — это повторить команду ping, но используя уже не имя, а адрес:
$ ping 192.168.7.135
Если команда выполнится успешно, то стоит обратить внимание на конфигурацию DNS. Наиболее распространенные причины ошибки:
•неверное содержание файла конфигурации DNS /etc/resolv.conf;
•на сервере DNS нет записи, связанной с win-client;
•сервер DNS недоступен в данный момент.
Если же ping по IP-адресу успешно не выполняется, то стоит проверить работоспособность сетевого оборудования на сервере, клиенте и между ними.
Широковещательный адрес на сервере и клиенте
Возможно, ping выполнится и успешно, но при этом сетевая маска (netmask) и широковещательный адрес (broadcast address) будут сконфигурированы неверно.
В NetBIOS крайне важно для правильного разрешения имени и поиска машин в сетевом окружении, чтобы сервер и клиент находились в одной подсети, т.е. использовали одну маску подсети и широковещательный адрес.
В нашем случае сетевая маска должна быть 255.255.255.0, а широковещательный адрес — 192.168.7.255.
Если вы используете Linux, то можно проверить, какие используются широковещательный адрес и маска, при помощи команды ifconfig с именем интерфейса в качестве аргумента:
$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:04:5A:0C:1C:19
inet addr:192.168.7.75 Bcast:192.168.255.255 Mask:255.255.255.0
inet6 addr: fe80::204:5aff:fe0c:1c19/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:68006 errors:0 dropped:0 overruns:0 frame:0
TX packets:100783 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:12186135 (11.6 Mb) TX bytes:121642120 (116.0 Mb)
Interrupt:3 Base address:0x100
1
Если в выводе этой команды вы увидите, что широковещательный адрес или сетевая маска заданы неверно, следует зайти под учетной записью root и установить верные значения, используя команду ifconfig:
root# ifconfig eth0 192.168.7.75 netmask 255.255.255.0 broadcast 192.168.7.255
В Windows аналогичную информацию можно получить информацию, выполнив команду ipconfig /all.
Проверка корректности файла smb.conf
Так как Samba использует огромное количество параметров из файла smb.conf, разработчики создали утилиту командной строки, которая проверяет синтаксис этого файла. Утилита называется testparm, она очень полезна при поиске ошибок в конфигурационном файле.
Можно использовать утилиту testparm с параметром -s для анализа конкретного конфигурационного файла. Эта опция очень хорошо подходит для проверки файла конфигурации перед его «боевым» использованием.
$ testparm -s /usr/local/samba/lib/smb.conf.new
Load smb config files from /usr/local/samba/lib/smb.conf.new
Processing section “[public]”
Loaded services file OK.
# Global parameters
[global]
coding system =
client code page = 850
code page directory = /usr/local/samba/lib/codepages
<...остальной вывод опущен...>
После анализа заданного конфигурационного файла testparm выводит все значения файла smb.conf, включая значения по умолчанию. Это помогает убедиться, что используются ожидаемые значения параметров конфигурации smbd и nmbd.
Стоит отметить, что значения по умолчанию меняются от версии к версии, так что необходимо использовать версию Samba, соответствующую версии testparm.
УРОВЕНЬ 2
Серверное и клиентское ПО
Второй уровень подразумевает проверку конфигурации клиентского и серверного ПО. Наша цель — убедиться, что и клиент, и сервер корректно отвечают на запросы NetBIOS и CIFS. Пока мы рассматриваем изолированно каждый из хостов. (На третьем уровне мы уже начнем рассматривать их взаимодействие.)
smbd
В первую очередь, smbd должен быть запущен. Проверить это можно, используя команду ps. Аргументы этой команды могут отличаться в зависимости от версии Linux.
$ ps -ef | grep smbd
root 28592 1 0 12:37 ? 00:00:00 /usr/local/samba/bin/smbd -D
Убедившись, что smbd запущен (или, при необходимости, запустив его), используем утилиту smbclient для проверки работоспособности сервера. Параметр -L используется для вывода списка ресурсов сервера. Ключ -N используется для анонимного подключения к серверу, чтобы не создавать лишних проблем с авторизацией. Все эти действия должны выполняться локально на Samba-сервере.
smbclient -L TROUBLE -N added interface ip=192.168.7.75 bcast=192.168.1.255 nmask=255.255.255.0 Anonymous login successful Domain=[LAB] OS=[Unix] Server=[Samba 2.2.2]
Sharename Type --------- ---- public Disk IPC$ IPC
Comment -------
IPC Service (Samba 2.2.2)
smbclient -L TROUBLE -N added interface ip=192.168.7.75 bcast=192.168.1.255 nmask=255.255.255.0 Anonymous login successful Domain=[LAB] OS=[Unix] Server=[Samba 2.2.2]
Sharename Type --------- ---- public Disk IPC$ IPC
Comment -------
IPC Service (Samba 2.2.2)
ADMIN$
Server --------- TROUBLE
Workgroup --------- LAB
Disk
IPC Service (Samba 2.2.2)
Comment ------- Samba 2.2.2
Master ------- TROUBLE
Существуют две распространенные ошибки, которые могут возникнуть при выполнении этой проверки.
Первая ошибка выглядит следующим образом:
error connecting to 192.168.7.75:139 (Connection refused) Connection to <server> failed
Она возникает, если smbd не запущен или не может подключиться к порту 139. Причиной этому могут быть ранее установленные и некорректно удаленные компоненты Samba. Прежде всего следует убедиться, что smbd стартует как демон и не завершается тут же с ошибкой. Особенность в том, что nmbd не выводит ошибки в консольное окно, так что следует посмотреть последние несколько строк log-файла. Позже мы рассмотрим анализ логов более подробно.
Вторая часто встречающаяся ошибка выглядит так:
session request to <server> failed (Not listening for calling name)
Можно подумать, что причиной этой ошибки является неверное NetBIOS-имя, но это не так. Эта ошибка не может быть вызвана «битой» установкой nmbd, nmbd в данном случае даже не обязательно должен быть запущен.
Причиной возникновения этой ошибки при локальном подключении чаще всего являются неверно сконфигурированные параметры hosts allow или hosts deny в файле smb.conf. Сервер разрывает создающуюся NetBIOS-сессию.
Если нам удалось увидеть список общих ресурсов, мы можем проверить возможность Samba авторизовать пользователей. В этом тесте аккаунт с именем пользователя user1 и паролем secret подключается к общему ресурсу [public].
$ smbclient //TROUBLE/public -U user1%secret added interface ip=192.168.7.75 bcast=192.168.1.255 nmask=255.255.255.0 Domain=[LAB] OS=[Unix] Server=[Samba 2.2.2] smb: >
Если Samba не сможет авторизовать пользователя, вы увидите сообщение об ошибке:
session setup failed: ERRSRV - ERRbadpw (Bad password - name/password pair in a Tree Connect or Session Setup are invalid.)
Причин этой ошибки может быть много. Это может быть неверное имя или пароль, или отсутствующая запись smbpasswd для пользователя, если задан параметр encrypt password = yes, или недействительная учетная запись guest, если разрешен доступ без аутентификации.
Если пользователь корректно авторизовался, но не смог получить доступ к запрошенной службе, smbclient выведет следующее сообщение:
tree connect failed: ERRDOS - ERRnosuchshare (You specified an invalid share name)
Это может быть вызвано неверно написанным именем службы, настройками доступа к общему ресурсу или неверным выражением path в описании общего ресурса в файле smb.conf.
nmbd
Чтобы проверить, запущен ли nmbd, мы снова используем команду ps.
$ ps -ef | grep nmbd
root 29054 1 0 15:53 ? 00:00:00 /usr/local/samba/bin/bin/nmbd -D
Если ps покажет, что nmbd не запущен, стоит зайти под учетной записью root и запустить его (/usr/local/samba/bin/nmbd -D).
Для теста мы будем использовать утилиту Samba — nmblookup. У каждого Samba-сервера есть особое имя, _Samba_, на которое они откликаются всегда. Послав запрос по этому имени, мы можем проверить работоспособность nmbd. Ключ -U используется для того, чтобы отправить запрос на конкретный адрес.
$ ./nmblookup -U 127.0.0.1 __Samba__ querying __Samba__ on 127.0.0.1 192.168.7.75 __Samba__<00>
Если nmbd при этом не запущен, результатом будет ошибка:
name_query failed to find name __Samba__
Также причиной ошибки может быть тот факт, что loopback-интерфейс не включен в smb.conf при включенном параметре bind interfaces only = yes.
После этого мы проверим, может ли nmbd зарегистрировать имя TROUBLE.
$ nmblookup -U 127.0.0.1 TROUBLE querying TROUBLE on 127.0.0.1 192.168.7.75 TROUBLE<00>
Сообщения об ошибках, например, “name query failed”, скорее всего, вызваны неудачным запросом к имени _Samba_. Другой причиной может быть то, что сервер не может зарегистрировать имя NetBIOS. В этом случае стоит найти сервер, которому принадлежит данное имя, отправив широковещательный запрос.
$ nmblookup -B 192.168.1.255 TROUBLE querying TROUBLE on 192.168.1.255 192.168.1.98 TROUBLE<00> ошибка
Например, в данном случае это имя принадлежит сторонней машине, а не нашему Samba-серверу. Очевидно, решением данной проблемы является переименование этой машины или сервера.
NetBIOS-интерфейс Windows
Утилита, использующаяся в Windows для NetBIOS-запросов — nbtstat.exe — имеет еще несколько опций, которых нет в nmblookup. Одна из них (-n) позволяет «спросить» у NetBIOS-интерфейса, какие имена он успешно зарегистрировал:
C:WINDOWS> nbtstat -n
Node IpAddress: [192.168.7.135] Scope Id: [] NetBIOS Local Name Table
Name Type Status ---------------------------------------------
WIN-CLIENT LAB WIN-CLIENT
<00> UNIQUE <00> GROUP <03> UNIQUE
Registered Registered Registered
Если компонент “Client for Microsoft Networks” не был установлен, nbtstat.exe сообщит следующее:
Failed to access NBT driver 1
Более тонкая ошибка возникает, когда Windows-клиент сообщает что он зарегистрировал имя рабочей группы, хотя это должно быть уникальное имя рабочей станции.
Name Type Status --------------------------------------------- LAB <00> GROUP Registered
Часто причиной этого является наличие машины с таким же NetBIOS-именем. Windows-клиенту необходимо уникальное имя, чтобы установить NetBIOS-сессию с сервером. Пока клиент не сможет зарегистрировать имя рабочей станции, он будет неспособен, скажем, просматривать сетевое окружение или подключать сетевые диски.
УРОВЕНЬ 3
Удаленный доступ к общим ресурсам
Итак, мы уже выяснили, что и клиент, и сервер имеют доступ к сети, и локально ПО на них работает. На данном уровне мы переходим к диагностике работоспособности их взаимодействия.
Разрешение имен
Мы вновь будем использовать утилиты nmblookup и nbstat.exe, чтобы выяснить, может ли клиент разрешить имя сервера и наоборот. Тест будет состоять из двух фаз. В первой мы будем использовать широковещательный запрос, чтобы протестировать отклики сервера и клиента. Это делается путем задания широковещательного адреса (-B 192.168.7.255) в утилите nmblookup при запросе, что задействует сетевое взаимодействие между сервером и клиентом.
Сначала мы попробуем разрешить имя сервера:
$ nmblookup -B 192.168.1.255 TROUBLE querying TROUBLE on 192.168.1.255 192.168.7.75 TROUBLE<00>
После этого мы попробуем разрешить имя клиента, используя тот же широковещательный адрес.
$ nmblookup -B 192.168.1.255 win-client querying win-client on 192.168.1.255 192.168.7.135 win-client<00>
Если до сих пор все шло хорошо, этот тест, скорее всего, отработает корректно. Если же результатом будет ошибка, стоит еще раз поверить соответствие широковещательного адреса на всех машинах.
После этого мы выполним NetBIOS Node Status Lookup, проверим статус узла. На этом шаге делается прямое обращение к IP-адресу, в котором запрашивается список уникальных и групповых NeBIOS имен, зарегистрированных этим хостом. Начнем с запроса к Samba-серверу от Windows-клиента.
C:WINDOWS> nbtstat -A 192.168.7.75
NetBIOS Remote Machine Name Table
Name Type Status ---------------------------------------------
TROUBLE <00> UNIQUE TROUBLE <03> UNIQUE TROUBLE <20> UNIQUE ..__MSBROWSE__.<01> GROUP
Registered Registered Registered Registered Registered Registered Registered
LAB LAB LAB
<00> GROUP <1D> UNIQUE <1E> GROUP
MAC Address = 00-00-00-00-00-00
Можно выполнить те же действия на Samba-сервере, чтобы собрать информацию о клиенте. Опции для запроса через утилиту nmblookup, в целом, такие же как и в nbtstat.exe.
$ nmblookup -A 192.168.7.135 Looking up status of 192.168.7.135
WIN-CLIENT LAB WIN-CLIENT
<00> - B <ACTIVE> <00> - <GROUP> B <ACTIVE> <03> - B <ACTIVE>
Если какой-то из этих запросов не выполняется, следует еще раз провести проверки сетевого подключения и NetBIOS-интерфейсов, которые мы рассматривали раньше.
Просмотр общих ресурсов с Windows-клиента
Мы уже использовали smbclient для просмотра списка общих ресурсов. Здесь мы проделаем то же самое, только удаленно с Windows-клиента.
Утилита net.exe — это универсальная утилита для работы с CIFS. Эта утилита является эквивалентом Linux-команды smbclient -L. Опиция view позволяет просмотреть общие ресурсы рабочей группы, или, если указать конкретное имя сервера (например, \TROUBLE), покажет список общих ресурсов на нем.
Удаленное подключение к общим ресурсам
На самом деле, этот шаг является не столько тестом, сколько целью всего процесса. Если мы зашли в консоль с правильным именем и паролем, то следующая команда подключит диск P: локального клиента к общему ресурсу [public] на сервере TROUBLE.
C:WINDOWS> net use p: \TROUBLEpublic
The command completed successfully.
Чтобы определить, под каким именем подключаться, можно использовать опцию
/user::
C:WINNT>net use \TROUBLEpublic /user:user1
The password or user name is invalid for \TROUBLEpublic.
Type the password for \TROUBLEpublic:
The command completed successfully.
Существует огромное количество проблем, связанных с аутентификацией. Зачастую они могут быть обнаружены только путем анализа лог-файлов, что будет рассмотрено позже.
УРОВЕНЬ 4
Сетевое окружение
Решение проблем с корректной работой Сетевого окружения — очень сложная тема. Скорее всего, если вы добрались до этого уровня, а сетевое окружение не работает или работает некорректно, вам следует еще раз проверить маску подсети и широковещательный адрес, и снова повторить все тесты нижних уровней: ошибка вероятно кроется там.
УРОВЕНЬ 5
Лог-файлы и анализ трафика
Иногда корень проблемы сложно определить даже с помощью специализированных диагностических утилит. Тогда на помощь приходят логи. Первые четыре уровня нашей «пирамиды» можно использовать для подтверждения правильности начальной установки Samba и решения простых проблем. Начиная с пятого уровня, начинается решение серьезных проблем. Рано или поздно вы столкнетесь с проблемой, которая потребует работы с логами.
Лог-файлы Samba
Ниже приведена таблица, в которой описаны уровни детализации логов.
Чтобы узнать текущий уровень логирования smbd (например, с pid 1234), выполним следующую команду из-под учетной записи root:
root# smbcontrol 1234 debuglevel
Current debug level of PID 1234 is 0
Если мы хотим увеличить уровень логирования до 10, чтобы получить всю возможную информацию, используем следующую команду:
root# smbcontrol 1234 debug 10
root# smbcontrol 1234 debuglevel
Current debug level of PID 1234 is 10
Следующий вопрос: «Что же делать с логами?»
Вот пример, в котором логи помогли решению проблемы. Мы пробуем подключиться с Windows-клиента к общему дисковому ресурсу. Однако smbd не принимает пароль для соединения. Когда мы используем smbclient для теста, мы получаем ошибку:
$ smbclient //TROUBLE/public -U testuser%test
session setup failed: ERRSRV - ERRbadpw (Bad password - name/password pair in a Tree Connect or Session Setup are invalid.)
Мы совершенно уверены, что значение smbpasswd верно, и пароль — test. Попробуем подключиться еще раз, добавив
log level = 10 log file = /usr/local/samba/var/log.%m
в секцию [global] файла smb.conf, и мы увидим новые строчки в файле log.TROUBLE:
pdb_getsampwnam: search by name: testuser startsmbfilepwent_internal: opening file /usr/local/samba/private/smbpasswd getsmbfilepwent: returning passwd entry for user root, uid 0 getsmbfilepwent: returning passwd entry for user jerry, uid 786 getsmbfilepwent: returning passwd entry for user guest1, uid 782 getsmbfilepwent: returning passwd entry for user testuser, uid 791 endsmbfilepwent_internal: closed password file. pdb_getsampwnam: found by name: testuser build_sam_account: smbpasswd database is corrupt! username testuser
not in unix passwd database! Couldn’t find user ‘testuser’ in passdb.
Последняя строка и есть ответ на наш вопрос. Samba не смогла найти учетную запись testuser. А это произошло, так как кто-то закомментировал строку в файле /etc/passwd:
#testuser:x:791:100::/dev/null:/bin/false
После того, как мы уберем знак комментария (#) перед строкой с учетной записью, попробуем подключиться снова. И на этот раз успешно.
$ smbclient //TROUBLE/public -U testuser%test Domain=[LAB] OS=[Unix] Server=[Samba 2.2.2] smb: >
Это всего лишь один пример. Вывод в логах может быть запутанным, но можно использовать grep, чтобы находить следующие ключевые слова:
• fail
• error
• unsuccessful
• corrupt
• unknown
Мониторинг сетевого трафика
Еще один способ найти корень проблемы — это просматривать содержимое пакетов, ходящих по сети между сервером и клиентом. Для этого можно использовать такие программы-анализаторы, как Wireshark. С их помощью можно просмотреть и проанализировать в достаточно читаемом виде содержимое пакетов.
УРОВЕНЬ 6
Внутренние проблемы Samba
Если ничего из вышеприведенного не помогло — возможно, вы столкнулись с каким-либо багом Samba. Список известных можно посмотреть на официальном сайте. Чтобы свести к минимуму вероятность появления подобного рода проблем, используйте актуальную и стабильную версию Samba, а также следите за выходом исправлений: исправляются разведанные баги достаточно быстро.
Заключение
Итак, мы разобрали методологию поиска и решения проблем Samba. Проблемы были разнесены по уровням, и каждый уровень зависит от успешной работоспособности более низкого уровня. Еще раз взглянем на них:
•Уровень 1. Сетевое соединение и работоспособный smb.conf.
•Уровень 2. Серверное и клиентское ПО.
•Уровень 3. Удаленный доступ к ресурсам.
•Уровень 4. Сетевое окружение.
•Уровень 5. Логи и анализ трафика.
•Уровень 6. Внутренние проблемы Samba.
Не стоит забывать, что, возможно, с вашей проблемой уже кто-то сталкивался. В этом случае просмотр профильных форумов и других ресурсов может вам сэкономить драгоценное время. Не зацикливайтесь на единственно возможной по вашему мнению причине. Постарайтесь посмотреть на проблему с другой точки зрения. В конце концов решение любой проблемы может быть найдено!
Друзья, добро пожаловать в еще одну статью-инструкцию по разрешению ваших сетевых проблем на ВайФайГиде. На связи Ботан. Сегодняшняя ошибка многолика – она проявляется и на Windows 10, и на Windows 7, может иметь разные наименования, ее проявление зачастую опирается на погоду (шутка, но порой так и думаешь), а главное – она связана с проблемами доступа к сети в операционных системах Windows. Переходим к проблематике.
Если что-то есть дополнить или осталась за кадром своя веселая история, связанная с этой ошибкой – смело пишите в комментарии. Поможете другим читателям с такой же проблемой.
Содержание
- Проявления ошибки
- Решения проблемы
- Странное решение от меня
- Быстрый способ – реестр
- Шаг 1 – Проверяем настройки общего доступа
- Шаг 2 – Запускаем Службы
- Шаг 3 – Сетевая карта
- Шаг 4 – Диспетчер устройств
- Шаг 5 – Олицетворение
- Шаг 6 – SMB1
- Задать вопрос автору статьи
Проявления ошибки
Уже сказал выше, что ошибка всплывает на всех версиях Windows – и более чем часто на современных Windows 7, Windows 8, Windows 8.1, Windows 10.
Может иметь разные по сути названия с одним смыслом. Сетевая ошибка:
- Windows не может получить доступ к сетевой папке, диску, иному расположению в локальной сети
- Windows не может получить доступ к компьютеру в локальной сети. Не найден сетевой путь. Код ошибки: XXXXXXXX
- Windows не может получить доступ к ВАШАПАПКА. Разрешение на доступ к ВАШАПАПКА отсутствует. Обратитесь к сетевому администратору для получения доступа.
- Windows не может получить доступ к компьютеру. Проверьте правильность написания данного имени.
И самое гениальное – если вчера все работало отлично, не факт, что с утра будет так же. Именно в таком случае по большей части и оказываются читатели этой статьи – вроде бы все настроено правильно, но по факту ничего не работает и нет доступа к сетевой папке.
Для справки: типичные коды ошибок – 0x800070035, 0x80004005 или 0x800704cf.
Друзья, если у вас не видит вообще каких-то папок – рекомендую прочитать ЭТУ СТАТЬЮ ОТ БОРОДАЧА. Там же можно посмотреть и другие способы разрешения сетевых проблем, все эти ошибки очень похожи, универсального одного способа не существует, поэтому приходится писать столько много в основном бесполезного текста.
Решения проблемы
Здесь и далее я считаю, что вы грамотно раздали все по сети. Если не уверены в своих первоначальных действиях, рекомендую прочитать нашу статью по расшариванию файлов и папок по локальной сети.
После каждого этапа можно смело перезагружаться и проверять.
Странное решение от меня
Очень быстрое и странное дополнение от меня. Бывает такое, что сеть настроил вроде бы нормально, оно даже вчера работало, одинаковые версии Windows 10, все права назначены – но вот хоть об стену вываливаются вышеуказанные ошибки. Щелкаешь по папкам – а не дает войти (еще хуже, когда не дает войти в сам компьютер в сетевом окружении или вообще там ничего не видно).
Лично я в таком случае захожу на втором компьютере тоже в Сеть – как правило там начинается поиск, или даже делаются какие-то запросы-разрешения. Суть – второй компьютер обычно видит первый. И самое интересное – после такой манипуляции первый компьютер тоже успешно начинает работать со вторым. Необъяснимая магия, которая может продолжать работать месяцами без всяких сбоев.
Быстрый способ – реестр
Вся проблема этих доступов связана как раз с той самой подсистемой доступа. А почему бы нам ее и не заглушить на корню? Для больше части людей такая правка в реестре начисто исправляет ситуацию. Рекомендую попробовать, но если что – просто сделайте все как раньше.
- Запускаем реестр. Не знаете как это сделать?( Для Windows 10 – щелкаем правой кнопкой мыши по кнопке Пуск и запускаем «Выполнить». В появившемся окошке вводим regedit.
- Раскрываем папки в редакторе реестра вот по этому пути:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters
- Добавляем сюда параметр AllowInsecureGuestAuth, тип DWORD, значение 1 (Enabled).
Данный способ особенно актуален для Windows 10 Home, где доступа к редактору локальной GPO попросту нет. Зато работает как часы. Опытные могут сделать это же через команду (но для надежности лучше протыкать вручную):
reg add HKLMSYSTEMCurrentControlSetServicesLanmanWorkstationParameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f
Шаг 1 – Проверяем настройки общего доступа
Теперь приступаем уже к основной части, если прошлые вдруг чего-то не исправили моментальные проблемы системы. Начнем все-таки с базы, а вдруг вы чего-то неверно выставили в настройках (хотя я вам охотно верю, что все сделали правильно).
Напоминаю, что предоставление доступа к папке или диску проходит в два этапа: доступ нужно разрешить в нескольких местах.
- В первый раз на вкладке «Доступ» мы щелкаем по большой кнопке «Общий доступ», а на следующем окне добавляем ВСЕХ пользователей:
- Теперь переходим здесь же в «Расширенную настройку» и делаем примерно как на рисунке:
Очень надеюсь, что вы изначально давали доступ точно так же. Некоторые рекомендуют пользоваться пунктом «Поделиться» в Windows 10 для расшаривания в домашней сети, но чего-то на практике это вносит только путаницу. Лично я как старовер пользуюсь дедовскими методами. Не получается? Едем дальше.
Шаг 2 – Запускаем Службы
За доступ ко всем радостям совместного пользования папок отвечает служба «Сервер». Иногда она выключена – включаем:
- Идем в Службы (мне проще всего запускать их через Поиск в системе):
- Ищем в списке «Сервер». Если не работает – запускаем (или через правую кнопку, или двойным щелчком через общие параметры, на ваш вкус). Статус видно прямо здесь:
В настройках запуска можно выбрать автоматическое включение, а то вдруг что-то ее выключило, и после перезагрузки она в итоге и выключается. Проверьте.
Шаг 3 – Сетевая карта
Обычно причина редко связана с этим пунктом, но попробовать ведь никто не запрещает.
- Ищем вашу сетевую карту (идем в Параметры сети и интернет – Настройки параметров адаптера (на десятке) или в Центр управления сетями и общим доступом – Изменение параметров адаптера (на семерке)). Выбираем ВАШ сетевой адаптер, через который вы подключены к сети, щелкаем правой кнопкой мыши по нему и выбираем «Свойства»:
- Пробуем СНЯТЬ галочку в списке с IPv6 (IPv4 оставляем включенным):
- Теперь выбираем IPV4 (галочку не трогаем), а щелкаем по кнопке «Свойства»:
- «Дополнительно»:
- WINS – Параметры NetBIOS – По умолчанию (если же вдруг вручную задаете IP-адреса в сети, рекомендуется его Включить здесь):
Шаг 4 – Диспетчер устройств
Еще один маловероятный случай.
- Идем в «Диспетчер устройств» (снова правой кнопкой мыши по Пуску, ну или пользуйтесь поиском).
- Вид – Показать скрытые устройства (иначе будет не видно)
- Удаляем устройства 6to Еще одна завязь на IPv6 протокол.
Шаг 5 – Олицетворение
Лично мне это направление тоже не нравится, но были и те, кому помогло. Поэтому пропускать было нельзя.
- Через Поиск ищем «Службы компонентов». Запускаем.
- Идем по пути: Службы компонентов – Компьютеры – Мой компьютер:
- Щелкаем по «Мой компьютер» правой кнопкой мыши и выбираем «Свойства».
- Далее идем во вкладку «Свойства по умолчанию». Уровень проверки подлинности – По умолчанию. Уровень олицетворения – Олицетворение:
Шаг 6 – SMB1
На случай если сопрягается новая «десятка» со старыми версиями Windows. По умолчанию в ней отключен протокол SMB1. Для разрешения придется идти в «Программы и компоненты» (лучше через Поиск) – «Включить и выключить компоненты Windows» и ставить ее вручную (SMB 1.0 / CIFS File Sharing Support).
Если вы нашли свое решение, обязательно рекомендую поделиться им в комментариях. Ошибка не такая уж и простая, но порой решается очень странным простым способом. Решили сами и поделились – помогли кому-то сберечь пару седых волосков. Спасибо!
После обновления на домашнем ПК MS Windows до версии 1709 перестал подключаться к сетевой папке. Отваливается с ошибкой 0x80004005. Решение проблемы далее
Имеется домашний сервер на базе FreeBSD, на нем поднят SAMBA сервер, на котором расшарена папка. Безопасность в домашней сети нулевая, на SAMBA настроен гостевой доступ с полными правами к единственной сетевой папке. Все работало до обновления домашнего ПК с MS Windows 10 до версии 1709. После обновления этот комп перестал видеть шару. Остальные устройства видят шару как и раньше, без проблем. После обновления в MS Windows 10 «подкрутили гайки» с безопасностью и гостевой доступ стал недоступен.
Ослабляем гайки и возвращаем доступ
Для этого запускаем редактор групповой политики на ПК
Политика «Локальный компьютер»Конфигурация компьютераАдминистративные шаблоныСетьРабочая станция Lanman
Параметр «Включить небезопасные гостевые входы» — Состояние «Включена»
Перезагружаем ПК и проверяем, что доступ к сетевой папке появился
Где искать в английской версии:
Group Policy settings:
Computer configurationadministrative templatesnetworkLanman Workstation
«Enable insecure guest logons»
Настройки можно произвести и через реестр
Default Registry Value:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters]
«AllowInsecureGuestAuth»=dword:0
Configured Registry Value:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters]
«AllowInsecureGuestAuth»=dword:1