Linux не видит сетевую папку windows

Вы, наверное, не раз сталкивались с проблемой, что 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, а также как исправить эту проблему. Если проблему с сетевым обнаружением устранить не удается, вы всегда можете попробовать подключится вручную. Это не решает основную проблему, но позволяет получить нужные файлы. Вы знаете другие способы решения? Поделитесь ими в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

cannot-connect-to-linux-samba-from-windows-000.pngОшибки сетевого доступа в Windows — вещь довольно неприятная, тем более что не все умеют их правильно диагностировать и исправлять. При том, что интернет кишит различными способами самой разной степени сомнительности. Поэтому мы решили подробно разобрать одну из типовых ситуаций, показав как процесс диагностики, так и различные способы решения проблемы, каждое из которых имеет свои особенности, в частности влияние на безопасность. Такой подход позволит не только выяснить причины ошибки и устранить ее, но и поможет подойти к этому вопросу осознанно, полностью представляя последствия своих действий.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

С ситуацией, когда компьютер под ОС Windows не хочет подключаться или перестает подключаться к общим ресурсам на сервере Samba под управлением Linux встретиться можно довольно часто и тому есть объективные причины, которые мы рассмотрим ниже, ну а пока посмотрим на ее внешние симптомы. Система неожиданно сообщает, что она не может получить доступ к указанному ресурсу и выдает абсолютно неинформативную ошибку:

Код ошибки: 0x80004005 
Неопознанная ошибка

cannot-connect-to-linux-samba-from-windows-001.png

Если попробовать подключиться в консоли, например, командой:

net view \\192.168.233.182

Где 192.168.233.182 — адрес искомого сервера, то получим немного другую ошибку:

Системная ошибка 53.
Не найден сетевой путь.

При этом указанный узел нормально пингуется, а проверка доступности 445 порта говорит, что все нормально:

cannot-connect-to-linux-samba-from-windows-002.pngПосле этого обычно начинается сетование на кривизну какого-либо из решений (в зависимости от личных предпочтений) и поиск решения в интернете, где можно найти как условно рабочие, так и полную дичь, вроде включения SMB1 и бездумного изменения различных политик и ключей реестра.

Но не будем спешить, вы же не глотаете все подряд из домашней аптечки только почувствовав недомогание? Так и здесь, поэтому будем разбираться.

Но сперва поясним ситуацию по протоколу SMB1:

Протокол SMB1 устарел и небезопасен, в настоящее время отключен на всех современных системах.

Кроме того, даже если вы включите его поддержку, то начиная с Windows 1709 она автоматически отключится после 15 дней неиспользования. В общем: включать SMB1 не нужно, разве что только вам действительно нужна поддержка устаревших клиентов.

В современных версиях Samba протокол SMB1 также отключен и минимальной поддерживаемой версией является SMB2_02, а максимальной SMB3. Это параметры по умолчанию и проверить их можно командами:

testparm --parameter-name="min protocol"
testparm --parameter-name="max protocol"

Настройки по умолчанию достаточно актуальны, и мы не советуем отдельно задавать версии протоколов без особой на то нужды. SMB2_02 — обозначает младшую версию протокола SMB2, а SMB3 указывает на старшую доступную версию, таким образом поддерживаются все системы начиная с Windows Vista и Server 2008. Причиной ошибки SMB1 быть не может.

Поэтому не занимаемся ерундой, а ищем истинную причину, в этом нам поможет Журнал событий. Раскрываем последовательно Журналы приложений и служб — Microsoft — Windows — SMBClient и в журнале Security находим ошибку 31017:

Небезопасный гостевой вход отклонен.Рекомендации.
Это событие указывает на попытку сервера разрешить вход пользователя как непроверенного гостя, которая была отклонена клиентом.
Для гостевого входа не поддерживаются стандартные функции обеспечения безопасности, например подписывание и шифрование.
Вследствие этого гостевой вход уязвим для атак "злоумышленник в середине", которые могут привести к попаданию конфиденциальных данных в сеть.
По умолчанию небезопасный гостевой вход отключен в Windows. Корпорация Майкрософт не рекомендует включать его.

cannot-connect-to-linux-samba-from-windows-003.pngПосле чего все становится на свои места. Нет никаких чудес, просто политики безопасности Windwos не позволяют подключаться к серверу с анонимным гостевым доступом. Кстати, это относится не только к Samba.

Теперь, когда есть понимание происходящего мы можем выбрать одно из двух решений указанной проблемы.

Решение №1. Отключаем гостевой доступ на сервере Samba

С точки зрения безопасности это наиболее правильное решение, которое позволит получать доступ к общим ресурсам не снижая уровень безопасности сети. Для этого внесем некоторые изменения в конфигурационный файл Samba, обычно он располагается в /etc/samba/smb.conf. Прежде всего найдем и приведем к следующему виду директиву:

map to guest = never

А в настройках каждого общего ресурса укажем:

guest ok = no

Возможно, вам еще придется выполнить некоторые настройки, скажем, завести пользователей и назначить им права, для всего этого рекомендуем воспользоваться нашей статьей:

Настройка файлового сервера Samba на платформе Debian / Ubuntu

Сохраняем все изменения и проверяем конфигурацию на ошибки:

testparm

Затем перезапускаем службу:

systemctl restart smbd

После чего повторно пробуем подключиться и сразу видим окно для ввода учетных данных:

cannot-connect-to-linux-samba-from-windows-004.pngПроблема решена, ресурсы файлового сервера Samba снова доступны.

Решение №2. Разрешаем небезопасный гостевой вход в Windows

Если Решение №1 вас по каким-либо причинам не устраивает, и вы осознанно хотите понизить уровень безопасности вашей сети, то можно пойти другим путем и разрешить небезопасный гостевой вход.

Запустим редактор групповой политики (gpedit.msc) и перейдем в Конфигурация компьютера — Административные шаблоны — Сеть — Рабочая станция Lanman и переводим политику Включить небезопасные гостевые входы в положение Включено.

cannot-connect-to-linux-samba-from-windows-005.png

После чего вам потребуется перезапустить службу Рабочая станция или перезагрузить компьютер.

Альтернативой этому способу будет внесение изменений через реестр:

reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v AllowInsecureGuestAuth /t REG_DWORD /d 1

Затем перезапустим службу:

net stop LanmanWorkstation && net start LanmanWorkstation

После чего можем продолжать привычно использовать общие сетевые ресурсы с гостевой моделью доступа.

cannot-connect-to-linux-samba-from-windows-006.pngКакой вывод можно сделать после прочтения данного материала? Прежде всего понять, что любые сетевые ошибки имеют под собой вполне определенную причину, а не являются воздействием некой неведомой силы. И эти причины имеют свойство отображаться в журналах и логах.

Решений таких проблем также может быть несколько, каждое из которых может иметь свои достоинства и недостатки. Поэтому не нужно хватать первый попавшийся рецепт из интернета, а следует разобраться в причинах и выбрать из доступных вариантов тот, который будет вас наиболее устраивать.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Информация о материале

Недавно я перешел с Windows 10 на операционную систему Kubuntu. Сам по себе переход не вызвал каких-либо проблем, но в последствии они все-таки появились.

Дело в том, что у меня дома функционирует небольшая локальная сеть, которая включает в себя сервер под управлением Linux. Вот с подключением к нему и возникли некоторые проблемы.

Разумеется перед тем, как подключаться к серверу Samba были произведены настройки конфигурационного файла на подключаемому к серверу компьютеру, но результатов это не дало.

Хотя сервер пинговался с рабочего компьютера без каких-либо проблем.

Пришлось копать дальше, но главное понять причину произошедшего.

А все дело в том, что с выходом Windows 10 компания Microsoft решила отказаться от старого протокола SMB1 в пользу более современных протоколов SMB2 и SMB3, в которых уже нет сетевого обнаружения.

Но на этом история не заканчивается. Начиная с Samba версии 4.11 по умолчанию отключена поддержка протокола SMB1.

Таким образом, для решения создавшейся проблемы необходимо включить поддержку старого протокола SMB1 на сервере Samba подключаемого к сети компьютера.

Для этого открываем терминал и вводим команду

sudo mc

Далее необходимо внести несколько команд в конфигурационный файл Samba. Он расположен по адресу:

/etc/samba/smb.conf

Здесь в секции global после workgroup = необходимо дописать:

server min protocol = NT1
client min protocol = NT1
min protocol = NT1

Сохраняем отредактированный файл и перезагружаем компьютер.

Теперь наш компьютер должен увидеть локальную сеть, ее рабочие станции и сервера.

Ну и разумеется мы подготовили короткое видео с наглядным решением данной проблемы. Приятного просмотра!

У вас, возможно, возникала проблема, когда Ubuntu не может найти компьютеры под управлением Windows или не может обратиться к сетевым ресурсам через Samba. Такая ситуация обычна для многих дистрибутивов с GUI Gnome. Раньше причина этого была связана с багом в GVFS, однако с тех пор возникло несколько других причин. В этой статье мы расскажем, как можно решить проблему, настроить Ubuntu на работу с шарами Windows или Samba и переобучить Nautilus и Dolphin, чтобы они смогли видеть все сетевые ресурсы.

Почему Ubuntu не видит сеть Windows или Samba

Ubuntu может не видеть сеть Windows из-за отказа компании Microsoft от протокола SMB1 и перехода на протоколы SMB2 и SMB3, которые не имеют возможности сетевого обнаружения. Для отображения сетевых ресурсов на Ubuntu используется либо avahi либо протокол SMB1, поэтому увидеть шару Windows не получится, не включив обратно устаревший протокол в реестре.

Также, Windows не будет видеть шары Samba из-за отсутствия поддержки новым сервисом WS-Discovery. Для решения этой проблемы нужно отдельно установить сервис WSDD. Но ещё большей проблемой стало отключение поддержки протокола SMB1 на сервере Samba 4.11, из-за чего Nautils и Dolphin перестали видеть не только Windows шары, но и Linux тоже. Решение проблемы может быть либо установка на Samba сервер Avahi, либо включение поддержки старого протокола SMB1 на сервере Samba.

Настраиваем сеть Samba для удобного доступа к файлам

Включение поддержки протокола SMB1

Для того, чтобы сервер Samba был доступен в сети Windows, необходимо включить поддержку протокола SMB1.

Для этого отредактируйте файл /etc/samba/smb.conf следующим образом:

sudo vi /etc/samba/smb.conf

[global]
server min protocol = NT1
client min protocol = NT1
min protocol = NT1

Настройка имени хоста

Убедитесь, что имя хоста вашего сервера совпадает со значением параметра netbios name в файле /etc/samba/smb.conf. Вы можете проверить имя хоста командой hostname и добавить его в файл /etc/hosts:

hostname

sudo vi /etc/hosts

127.0.0.1       localhost
192.168.1.2     my_server

[…]

[global]
netbios name = my_server

Установка Avahi

Если проблема не решена, попробуйте установить и настроить сервис Avahi. Он позволит вашему серверу Samba отображаться в сетевом окружении в Nautilus.

Для установки Avahi выполните:

sudo apt install avahi-daemon avahi-utils

Далее запустите сервис и добавьте его в автозагрузку:

sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon

Проверьте доступные сервисы командой:

avahi-browse —all

Установка WSDD

Чтобы ваш сервер Samba был доступен в сети Windows, установите и настройте сервис WSDD. Этот сервис позволяет Windows видеть ваш сервер в сети.

Для установки WSDD выполните следующие команды:

git clone https://github.com/Andy2244/wsdd2.git
cd wsdd2
make
sudo make install
sudo systemctl daemon-reload
sudo systemctl enable —now wsdd2

Теперь ваш сервер Samba должен быть доступен в сети Windows. Проверьте его доступность, открыв сетевое окружение в Nautilus или проводнике Windows. Если все настроено правильно, вы должны увидеть ваш сервер Samba и его шары.

[global]
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Some options that are often worth tuning have been included as
# commented-out examples in this file.
# — When such options are commented with «;», the proposed setting
# differs from the default Samba behaviour
# — When commented with «#», the proposed setting is the default
# behaviour of Samba but the option is considered important
# enough to be mentioned here
#
# NOTE: Whenever you modify this file you should run the command
# «testparm» to check that you have not made any basic syntactic
# errors.

#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP

# Windows Internet Name Serving Support Section:
# WINS Support — Tells the NMBD component of Samba to enable its WINS Server
# wins support = yes

# WINS Server — Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no

#### Networking ####

# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 192.168.1.1/24 eth0

# Only bind to the named interfaces and/or networks; you must use the
# ‘interfaces’ option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = no

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Cap the size of the individual log files (in KiB).
max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to ‘yes’.
# syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace
panic action = /usr/share/samba/panic-action %d

####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are «standalone server», «member server», «classic primary
# domain controller», «classic backup domain controller», «active
# directory domain controller».
#
# Most people will want «standalone server» or «member server».
# Running as «active directory domain controller» will require first
# running «samba-tool domain provision» to wipe databases and create a
# new domain.
server role = standalone server

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam

obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# ‘passwd program’. The default is ‘no’.
pam password change = yes

# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
map to guest = bad user

########## Domains ###########

#
# The following settings only takes effect if ‘server role = primary
# classic domain controller’, ‘server role = backup domain controller’
# or ‘domain logons’ is set
#

# It specifies the location of the user’s
# profile directory from the client point of view) The following
# required a [profiles] share to be setup on the samba server (see
# below)
; logon path = \%Nprofiles%U
# Another common choice is storing the profile in the user’s home directory
# (this is Samba’s default)
# logon path = \%N%Uprofile

# The following setting only takes effect if ‘domain logons’ is set
# It specifies the location of a user’s home directory (from the client
# point of view)
; logon drive = H:
# logon home = \%N%U

# The following setting only takes effect if ‘domain logons’ is set
# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in ‘DOS’ file format convention
; logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe. The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser —quiet —disabled-password —gecos «» %u

# This allows machine accounts to be created on the domain controller via the
# SAMR RPC pipe.
# The following assumes a «machines» group exists on the system
; add machine script = /usr/sbin/useradd -g machines -c «%u machine account» -d /var/lib/samba -s /bin/false %u

# This allows Unix groups to be created on the domain controller via the SAMR
# RPC pipe.
; add group script = /usr/sbin/addgroup —force-badname %g

############ Misc ############

# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m

# Some defaults for winbind (make sure you’re not using the ranges
# for something else.)
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash

# Setup usershare options to enable non-root users to share folders
# with the net usershare command.

# Maximum number of usershare. 0 (default) means that usershare is disabled.
; usershare max shares = 100

# Allow users who’ve been granted usershare privileges to create
# public shares, not just authenticated ones
usershare allow guests = yes

#======================= Share Definitions =======================
security = user
encrypt passwords = no

[homes]
comment = Home Directories
browseable = yes

# By default, the home directories are exported read-only. Change the
# next parameter to ‘no’ if you want to be able to write to them.
read only = no

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0775

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0775

# By default, \serverusername shares can be connected to by anyone
# with access to the samba server.
# The following parameter makes sure that only «username» can connect
# to \serverusername
# This might need tweaking when using external authentication schemes
valid users = %nobody

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = no

# Un-comment the following and create the profiles directory to store
# users profiles (see the «logon path» option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = yes
; browseable = yes
; create mask = 0600
; directory mask = 0775

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

[print$]
path = /var/lib/samba/printers
comment = printer drivers
read only = no
guest ok = yes
guest only = no
valid users = nobody

[Обмен]
path = /root/obmen
read only = no
guest ok = yes
guest only = yes

Содержание

  1. Ошибка Ubuntu не видит сеть Windows
  2. Почему Ubuntu не видит сеть Windows или Samba?
  3. Настойка сервера Samba
  4. 1. Включение протокола SMB1
  5. 2. Настройка имени хоста
  6. 3. Установка Avahi
  7. 4. Установка WSDD
  8. Настройка Windows
  9. 1. Общий доступ в Windows
  10. 2. Включение SMB1 в Windows
  11. Настройка клиента
  12. 1. Установить Samba
  13. 2. Рабочая группа
  14. 3. Версия протокола
  15. 4. Правильный порядок разрешения имён
  16. 5. Не тот интерфейс
  17. 6. Отладка
  18. 7. Проблема в GVFS
  19. 8. Подключение напрямую
  20. Выводы
  21. [РЕШЕНO] SAMBA не видит в ФМ ни каких компьютеров сети ни linux ни windows, изменился протокол добавляем «client max protocol = NT1 в /etc/samba/smb.conf»
  22. Samba. Поиск и устранение неисправностей в работе системы

Ошибка Ubuntu не видит сеть Windows

Вы, наверное, не раз сталкивались с проблемой, что 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

Snimok ekrana ot 2022 05 08 11 31 42

После этого надо перезапустить Samba.

sudo systemctl restart smbd
sudo systemctl restart nmbd

Хочу обратить ваше внимание, что у меня всё заработало только после того как я перезагрузил и сервер и клиент. Видимо что-то где-то кэшируется.

2. Настройка имени хоста

Имя хоста вашего компьютера, выводимое командой hostname должно совпадать со значением в файле /etc/hosts и со значением параметра netbios name в файле /etc/samba/smb.conf. Например:

Snimok ekrana ot 2022 05 08 11 31 10

Регистр букв не имеет значения.

3. Установка Avahi

Если предыдущий способ не поможет, то установка Avahi должна помочь. Samba не будет отображаться в сетях Windows, но зато появится в сетевом окружении в Nautilus. Для установки Avahi выполните:

sudo apt install avahi-daemon avahi-utils

После этого сервис стоит запустить и добавить в автозагрузку:

sudo systemctl enable avahi-daemon

sudo systemctl start avahi-daemon

Проверить доступные сервисы можно командой:

Snimok ekrana ot 2022 05 08 11 34 16

Среди них должна быть ваша шара, обозначенная как Microsoft Windows Network local.

4. Установка WSDD

Сервис WSDD нужен для того чтобы вашу шару было видно из Windows. Можно использовать сервис wsdd2 из этого репозитория. Его надо собрать из исходников, но в этом нет ничего сложного. Сначала склонируйте репозиторий:

git clone https://github.com/Andy2244/wsdd2.git

Затем перейдите в папку с проектом:

Выполните make для сборки:

Затем установите программу, она только скопирует исполняемый файл и службу systemd в нужные директории:

Осталось запустить службу:

sudo systemctl daemon-reload

Snimok ekrana ot 2022 05 08 11 35 16

Теперь Windows сможет видеть ваш сервер Samba. Таким образом если всё сделать правильно, то все всех будут видеть.

1. Общий доступ в Windows

Убедитесь, что в Windows общий доступ был включён. Если общий доступ отключен, то вы не сможете никак получить доступ к ресурсам. Откройте проводник и перейдите в пункт Сеть. Если сетевой доступ отключён, то система выдаст соответствующее предупреждение:

Snimok ekrana 11

Кликните по нему чтобы включить общий доступ, затем выберите Включить сетевое обнаружение и общий доступ к файлам.

Snimok ekrana 12

После этого система ещё раз спросит надо ли разрешить доступ для всех общественных сетей. Ответьте утвердительно:

Snimok ekrana 13

После этого вы сможете получить доступ к общим ресурсам этого компьютера.

2. Включение SMB1 в Windows

Для того чтобы включить поддержку протокола SMB1 в Windows 10 откройте поиск и наберите Включение компонентов. Затем откройте утилиту Включение и выключение компонентов Windows:

samba1

Дальше найдите пункт SMB1.0 CIFS File Sharing Support и установите напротив него галочку:

samba2

Затем необходимо перезапустить компьютер:

samba3 1

После этого Ubuntu начнёт видеть вашу шару Windows и вы сможете к ней подключится.

Настройка клиента

Исходя из выше перечисленного, клиент скорее всего не виноват, но можно попробовать его настроить чтобы быть уверенным точно. Как я уже написал выше Nautilus для подключения и просмотра общих папок Windows и Samba использует виртуальную файловую систему gvfs. А та, в свою очередь использует библиотеку libsmbclient для получения необходимых данных. Поэтому мы можем попытаться исправить ситуацию переопределив некоторые параметры в /etc/samba/smb.conf. Но работает это далеко не всегда.

Snimok ekrana ot 2020 06 16 19 58 47

1. Установить Samba

Если файловый сервер Samba у вас не установлен, то его надо установить для того чтобы был создан файл /etc/samba/smb.conf с параметрами по умолчанию. Они потом будут использоваться библиотекой libsmbclient и самой утилитой smbclient, которую вы можете применять для тестирования. Для установки выполните:

sudo apt install samba

Проверьте конфигурационный файл Samba на ошибки с помощью такой команды:

Snimok ekrana ot 2020 06 16 21 44 26

2. Рабочая группа

По умолчанию используется рабочая группа WORKGROUP. Убедитесь, что ваша рабочая группа имеет именно это имя, также убедитесь, что в /etc/samba/smb.conf задано правильное имя рабочей группы в параметре workgroup:

sudo vi /etc/samba/smb.conf

Snimok ekrana ot 2020 06 16 21 39 54

3. Версия протокола

В современных системах Windows для общего доступа к папкам используется файловая система CIFS, использующая современные версии протоколов SMB2 и SMB3. Эти протоколы не поддерживают обзор доступных общих папок так, как это ожидает получить Nautilus. Для того чтобы всё работало надо использовать старый протокол NT1. Чтобы его включить добавьте параметр client max protocol после параметра workgroup:

client max protocol = NT1

Snimok ekrana ot 2020 06 16 21 41 12

После этого сохраните изменения и перезагрузите компьютер и проверьте.

4. Правильный порядок разрешения имён

Неверный порядок разрешения сетевых имен тоже может стать проблемой. Чтобы исправить его найдите в smb.conf параметр и приведите его к такому виду:

name resolve order = bcast lmhosts host wins

Snimok ekrana ot 2020 06 16 21 40 43

Здесь первым используется bcast, широковещательные сообщения, которые рассылаются по вашей локальной сети и ищут компьютеры с общими папками.

5. Не тот интерфейс

Если в вашем компьютере несколько сетевых интерфейсов, возможно smbclient пытается использовать не тот интерфейс. Чтобы посмотреть список интерфейсов используйте команду:

Snimok ekrana ot 2020 06 16 21 44 12

Затем найдите в /etc/samba/smb.conf параметр interface и замените в его значении eth0 на имя вашего интерфейса, который обеспечивает связь с нужной локальной сетью. Например на enp0s8:

interfaces = 127.0.0.0/8 enp0s8

Snimok ekrana ot 2020 06 16 21 39 45

После этого надо перезапустить службы Samba:

sudo systemctl restart smbd
sudo systemctl restart nmbd

6. Отладка

Если сеть Windows всё ещё не работает, вы можете попытаться отлаживать GVFS чтобы понять где именно возникает проблема и в чём её суть. Для этого надо завершить текущий сервер GVFS и запустить свой в терминале с включённой опцией отладки. Для этого выполните:

pkill gvfs; pkill nautilus

Snimok ekrana ot 2020 06 16 21 38 01

Затем откройте Nautils и войдите в сетевое окружение, сеть Windows. При этом в терминале будут выводится сообщения об ошибках работы службы. Вы можете использовать эти сообщения чтобы искать информацию в Google или попросить помощи на форумах.

7. Проблема в GVFS

Баг в GVFS, о котором я писал выше наблюдался для Samba версии 4.8 и ниже. Если сервер поддерживает протокол более высокого уровня, то клиент пытается использовать этот протокол, например SMB2 или SMB3, но на этих протоколах не работает отображение доступных ресурсов. Если у вас именно эта проблема, то для полного решения придется ждать обновления или использовать обходное решение описанное ниже.

8. Подключение напрямую

Даже если у вас не работает обнаружение сетевых ресурсов Windows, вы все ещё можете подключится к нужному компьютеру и получить с него файлы. Откройте пункт Другие места на левой панели Nautilus. Внизу окна вы увидите надпись Подключится к серверу введите smb://адрес_сервера в поле слева и нажмите Enter:

Snimok ekrana ot 2020 06 16 21 48 59

После этого система предложит ввести имя пользователя и пароль для доступа к общему ресурсу. Этот пользователь должен реально существовать на машине, к которой вы собираетесь подключится.

Snimok ekrana ot 2020 06 16 21 36 08

Введите пароль и вы увидите доступные общие папки:

Snimok ekrana ot 2020 06 16 21 36 14

Выводы

Если всё будет сделано правильно то Linux увидит вашу шару Windows или Samba:

Snimok ekrana ot 2022 05 08 11 36 56

В этой статье мы кратко рассмотрели почему Ubuntu не видит сеть Windows, а также как исправить эту проблему. Если проблему с сетевым обнаружением устранить не удается, вы всегда можете попробовать подключится вручную. Это не решает основную проблему, но позволяет получить нужные файлы. Вы знаете другие способы решения? Поделитесь ими в комментариях!

Источник

[РЕШЕНO] SAMBA не видит в ФМ ни каких компьютеров сети ни linux ни windows, изменился протокол добавляем «client max protocol = NT1 в /etc/samba/smb.conf»

0b523ea1d12ffe991cfaa8554c1d1eaf

Раньше все делал по арче вики и все работало gvfs-smb установлен конфиг выше

0b523ea1d12ffe991cfaa8554c1d1eaf

Невозможно найти рабочие группы в вашей локальной сети. Возможно, этому препятствует брандмауэр.

Рядом на компе стоит ubuntu все работает, как всегда с арчем все перемудрили

Вы вроде на кде перешли не забыли для него настроить
https://wiki.archlinux.org/index.php/Samba#KDE
Нет сейчас самбы проверить.

Запустите авахи с ним проблем нет.
перезагрузите фм должны быть видны компы, если нет то может точно что блочит

0b523ea1d12ffe991cfaa8554c1d1eaf

Запустите авахи с ним проблем нет.
перезагрузите фм должны быть видны компы, если нет то может точно что блочит

Если честно ничего не понял что там написано вставил строки

server multi channel support = yes
socket options = IPTOS_THROUGHPUT SO_KEEPALIVE
deadtime = 30
use sendfile = Yes
write cache size = 262144
min receivefile size = 16384
aio read size = 16384
aio write size = 16384
nt pipe support = no

load printers = No
printcap name = /dev/null
disable spoolss = Yes
Все перезагрузил результат прежний, avchi тоже запущен и тоже ничего не видит, рядом 2 компа на ubuntu все работает

Блин почему в этой ос все через одно место, за что не возьмись все не работает или работает с такими костылями, ну была нормальная самба сделал все по вики и работает а сейчас

Ради ржаки загрузился с загрузочной флешки линукс минт, самба все видит

Источник

Samba. Поиск и устранение неисправностей в работе системы

Эта статья по сути будет подборкой «Best practiсe» для системных администраторов Samba. Основой статьи является глава Troubleshooting Techniques из книги Sam’s Teach Yourself Samba in 24 Hours. Мы постараемся рассмотреть наиболее распространенные ошибки при настройке Samba.

Согласитесь, ужасно поменять двигатель в машине, а потом выяснить, что не ехала она из-за отсутствия бензина! Может, это и не лучшая метафора, но многие системные администраторы тратят время зря, не проверив в первую очередь самые очевидные вещи. Посмотрите, как примерно должен выстраиваться процесс поиска и решения проблем с Samba:

image loader

Проблемы, представленные на нижних уровнях этой «пирамиды», являются «фундаментом» для более высоких уровней. Не удивительно, что 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:

УРОВЕНЬ 1
Работоспособность сетевого соединения и файла конфигурации

Основание нашей «пирамиды» составляют три основных проблемы:
•корректно работающее TCP/IP подключение;
•соответствие маски и широковещательных адресов на серверах и клиентах;
•работоспособность файла smb.conf.

TCP/IP
Для проверки TCP/IP в первую очередь используется команда ping. Если описать протокол ICMP очень упрощенно, то хост отправляет запрос на сервер и спрашивает «Ты жив?». Если сервер не отвечает, хост приходит к выводу, что тот не подключен к сети и, следовательно, недоступен.

Также очень важным является правильное функционирование DNS. Если не удастся разрешить имя, появится сообщение вроде этого:

Если такое происходит, первое, что стоит сделать — это повторить команду ping, но используя уже не имя, а адрес:

Если команда выполнится успешно, то стоит обратить внимание на конфигурацию 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 с именем интерфейса в качестве аргумента:

Если в выводе этой команды вы увидите, что широковещательный адрес или сетевая маска заданы неверно, следует зайти под учетной записью root и установить верные значения, используя команду ifconfig:

В Windows аналогичную информацию можно получить информацию, выполнив команду ipconfig /all.

Проверка корректности файла smb.conf
Так как Samba использует огромное количество параметров из файла smb.conf, разработчики создали утилиту командной строки, которая проверяет синтаксис этого файла. Утилита называется testparm, она очень полезна при поиске ошибок в конфигурационном файле.
Можно использовать утилиту testparm с параметром -s для анализа конкретного конфигурационного файла. Эта опция очень хорошо подходит для проверки файла конфигурации перед его «боевым» использованием.

После анализа заданного конфигурационного файла testparm выводит все значения файла smb.conf, включая значения по умолчанию. Это помогает убедиться, что используются ожидаемые значения параметров конфигурации smbd и nmbd.
Стоит отметить, что значения по умолчанию меняются от версии к версии, так что необходимо использовать версию Samba, соответствующую версии testparm.

УРОВЕНЬ 2
Серверное и клиентское ПО

Второй уровень подразумевает проверку конфигурации клиентского и серверного ПО. Наша цель — убедиться, что и клиент, и сервер корректно отвечают на запросы NetBIOS и CIFS. Пока мы рассматриваем изолированно каждый из хостов. (На третьем уровне мы уже начнем рассматривать их взаимодействие.)

smbd
В первую очередь, smbd должен быть запущен. Проверить это можно, используя команду ps. Аргументы этой команды могут отличаться в зависимости от версии Linux.

Убедившись, что smbd запущен (или, при необходимости, запустив его), используем утилиту smbclient для проверки работоспособности сервера. Параметр -L используется для вывода списка ресурсов сервера. Ключ -N используется для анонимного подключения к серверу, чтобы не создавать лишних проблем с авторизацией. Все эти действия должны выполняться локально на Samba-сервере.

Существуют две распространенные ошибки, которые могут возникнуть при выполнении этой проверки.
Первая ошибка выглядит следующим образом:

Она возникает, если smbd не запущен или не может подключиться к порту 139. Причиной этому могут быть ранее установленные и некорректно удаленные компоненты Samba. Прежде всего следует убедиться, что smbd стартует как демон и не завершается тут же с ошибкой. Особенность в том, что nmbd не выводит ошибки в консольное окно, так что следует посмотреть последние несколько строк log-файла. Позже мы рассмотрим анализ логов более подробно.
Вторая часто встречающаяся ошибка выглядит так:

Можно подумать, что причиной этой ошибки является неверное NetBIOS-имя, но это не так. Эта ошибка не может быть вызвана «битой» установкой nmbd, nmbd в данном случае даже не обязательно должен быть запущен.
Причиной возникновения этой ошибки при локальном подключении чаще всего являются неверно сконфигурированные параметры hosts allow или hosts deny в файле smb.conf. Сервер разрывает создающуюся NetBIOS-сессию.
Если нам удалось увидеть список общих ресурсов, мы можем проверить возможность Samba авторизовать пользователей. В этом тесте аккаунт с именем пользователя user1 и паролем secret подключается к общему ресурсу [public].

Если Samba не сможет авторизовать пользователя, вы увидите сообщение об ошибке:

Причин этой ошибки может быть много. Это может быть неверное имя или пароль, или отсутствующая запись smbpasswd для пользователя, если задан параметр encrypt password = yes, или недействительная учетная запись guest, если разрешен доступ без аутентификации.
Если пользователь корректно авторизовался, но не смог получить доступ к запрошенной службе, smbclient выведет следующее сообщение:

Это может быть вызвано неверно написанным именем службы, настройками доступа к общему ресурсу или неверным выражением path в описании общего ресурса в файле smb.conf.

nmbd
Чтобы проверить, запущен ли nmbd, мы снова используем команду ps.

Если nmbd при этом не запущен, результатом будет ошибка:

Также причиной ошибки может быть тот факт, что loopback-интерфейс не включен в smb.conf при включенном параметре bind interfaces only = yes.
После этого мы проверим, может ли nmbd зарегистрировать имя TROUBLE.

Сообщения об ошибках, например, “name query failed”, скорее всего, вызваны неудачным запросом к имени _Samba_. Другой причиной может быть то, что сервер не может зарегистрировать имя NetBIOS. В этом случае стоит найти сервер, которому принадлежит данное имя, отправив широковещательный запрос.

Например, в данном случае это имя принадлежит сторонней машине, а не нашему Samba-серверу. Очевидно, решением данной проблемы является переименование этой машины или сервера.

NetBIOS-интерфейс Windows

Утилита, использующаяся в Windows для NetBIOS-запросов — nbtstat.exe — имеет еще несколько опций, которых нет в nmblookup. Одна из них (-n) позволяет «спросить» у NetBIOS-интерфейса, какие имена он успешно зарегистрировал:

Если компонент “Client for Microsoft Networks” не был установлен, nbtstat.exe сообщит следующее:

Более тонкая ошибка возникает, когда Windows-клиент сообщает что он зарегистрировал имя рабочей группы, хотя это должно быть уникальное имя рабочей станции.

Часто причиной этого является наличие машины с таким же NetBIOS-именем. Windows-клиенту необходимо уникальное имя, чтобы установить NetBIOS-сессию с сервером. Пока клиент не сможет зарегистрировать имя рабочей станции, он будет неспособен, скажем, просматривать сетевое окружение или подключать сетевые диски.

УРОВЕНЬ 3
Удаленный доступ к общим ресурсам

Итак, мы уже выяснили, что и клиент, и сервер имеют доступ к сети, и локально ПО на них работает. На данном уровне мы переходим к диагностике работоспособности их взаимодействия.

Разрешение имен
Мы вновь будем использовать утилиты nmblookup и nbstat.exe, чтобы выяснить, может ли клиент разрешить имя сервера и наоборот. Тест будет состоять из двух фаз. В первой мы будем использовать широковещательный запрос, чтобы протестировать отклики сервера и клиента. Это делается путем задания широковещательного адреса (-B 192.168.7.255) в утилите nmblookup при запросе, что задействует сетевое взаимодействие между сервером и клиентом.
Сначала мы попробуем разрешить имя сервера:

После этого мы попробуем разрешить имя клиента, используя тот же широковещательный адрес.

Если до сих пор все шло хорошо, этот тест, скорее всего, отработает корректно. Если же результатом будет ошибка, стоит еще раз поверить соответствие широковещательного адреса на всех машинах.
После этого мы выполним NetBIOS Node Status Lookup, проверим статус узла. На этом шаге делается прямое обращение к IP-адресу, в котором запрашивается список уникальных и групповых NeBIOS имен, зарегистрированных этим хостом. Начнем с запроса к Samba-серверу от Windows-клиента.

Можно выполнить те же действия на Samba-сервере, чтобы собрать информацию о клиенте. Опции для запроса через утилиту nmblookup, в целом, такие же как и в nbtstat.exe.

Если какой-то из этих запросов не выполняется, следует еще раз провести проверки сетевого подключения и NetBIOS-интерфейсов, которые мы рассматривали раньше.

Удаленное подключение к общим ресурсам
На самом деле, этот шаг является не столько тестом, сколько целью всего процесса. Если мы зашли в консоль с правильным именем и паролем, то следующая команда подключит диск P: локального клиента к общему ресурсу [public] на сервере TROUBLE.

Чтобы определить, под каким именем подключаться, можно использовать опцию
Существует огромное количество проблем, связанных с аутентификацией. Зачастую они могут быть обнаружены только путем анализа лог-файлов, что будет рассмотрено позже.

УРОВЕНЬ 4
Сетевое окружение

Решение проблем с корректной работой Сетевого окружения — очень сложная тема. Скорее всего, если вы добрались до этого уровня, а сетевое окружение не работает или работает некорректно, вам следует еще раз проверить маску подсети и широковещательный адрес, и снова повторить все тесты нижних уровней: ошибка вероятно кроется там.

УРОВЕНЬ 5
Лог-файлы и анализ трафика

Иногда корень проблемы сложно определить даже с помощью специализированных диагностических утилит. Тогда на помощь приходят логи. Первые четыре уровня нашей «пирамиды» можно использовать для подтверждения правильности начальной установки Samba и решения простых проблем. Начиная с пятого уровня, начинается решение серьезных проблем. Рано или поздно вы столкнетесь с проблемой, которая потребует работы с логами.

Лог-файлы Samba
Ниже приведена таблица, в которой описаны уровни детализации логов.

image loader

Чтобы узнать текущий уровень логирования smbd (например, с pid 1234), выполним следующую команду из-под учетной записи root:

Если мы хотим увеличить уровень логирования до 10, чтобы получить всю возможную информацию, используем следующую команду:

Следующий вопрос: «Что же делать с логами?»
Вот пример, в котором логи помогли решению проблемы. Мы пробуем подключиться с Windows-клиента к общему дисковому ресурсу. Однако smbd не принимает пароль для соединения. Когда мы используем smbclient для теста, мы получаем ошибку:

Мы совершенно уверены, что значение smbpasswd верно, и пароль — test. Попробуем подключиться еще раз, добавив

в секцию [global] файла smb.conf, и мы увидим новые строчки в файле log.TROUBLE:

Последняя строка и есть ответ на наш вопрос. Samba не смогла найти учетную запись testuser. А это произошло, так как кто-то закомментировал строку в файле /etc/passwd:

После того, как мы уберем знак комментария (#) перед строкой с учетной записью, попробуем подключиться снова. И на этот раз успешно.

Это всего лишь один пример. Вывод в логах может быть запутанным, но можно использовать grep, чтобы находить следующие ключевые слова:
• fail
• error
• unsuccessful
• corrupt
• unknown

Мониторинг сетевого трафика
Еще один способ найти корень проблемы — это просматривать содержимое пакетов, ходящих по сети между сервером и клиентом. Для этого можно использовать такие программы-анализаторы, как Wireshark. С их помощью можно просмотреть и проанализировать в достаточно читаемом виде содержимое пакетов.

УРОВЕНЬ 6
Внутренние проблемы Samba

Если ничего из вышеприведенного не помогло — возможно, вы столкнулись с каким-либо багом Samba. Список известных можно посмотреть на официальном сайте. Чтобы свести к минимуму вероятность появления подобного рода проблем, используйте актуальную и стабильную версию Samba, а также следите за выходом исправлений: исправляются разведанные баги достаточно быстро.

Источник

Друзья, доброго времени! Создание сетевых ресурсов   и организация общего доступа к ним — рутинный навык системных администраторов. Сегодня будем учиться делать это в линукс астра.

Процесc сильно отличается от того, что мы видим в обычно в Windows и новичкам  порой нелегко быстро разобраться. Но результат — безопасная и ясная настройка доступа. Приступим к изучению samba — файлового сервера.

Тонкости SAMBA  обязательно нужно знать и начнем с  общих папок. Предлагаю начать с создания  настроек samba с нуля . В дальнейшем легче будет постигать  более сложные настройки которые предоставляют разработчики. Итак..

Содержание

  • Как предоставить общий доступ из Windows к сетевой папке на Linux по логину и паролю?
  • Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием более одного имени пользователя не разрешено — как исправить ошибку (samba)?
  • Как предоставить анонимный доступ к  общей сетевой папке samba линукс из сети Windows?
  • Как отключить ввод пароля для разблокирования связки ключей «Основная» при подключении сетевой папки?
  • Как увидеть и подключить общую  сетевую папку Windows в Линукс Астра?
  • Как  настроить автоматические монтирование  сетевой  папки в Астра Линукс?

Как предоставить общий доступ из Windows к сетевой папке на Linux по логину и паролю?

Установили Линукс  в качестве сервера и хотели привычно открыть доступ к его сетевым папкам для компьютеров сети Windows. А в папку не попасть?

Давайте разбираться. Для начала текущий конфигурационный файл с настройками скопируем куда нибудь в другое место (еще пригодится),а вместо него создадим пустой и настроим его  нуля самостоятельно.

Вызовем терминал (Alt+t). Запустим Midnight Commander с наивысшими правами:

 sudo mc 

..найдем файл smb.conf в папке /etc/samba/smb.conf и  переместим его в другую папку, например в /tls того же каталога:

Вместо него  создадим его пустой аналог c помощью команды «touch»:

 sudo touch /etc/samba/smb.conf 

Чуть позже  начнем наполнять его настройками; сейчас сначала добавим пользователей файлового сервера samba. В нашем примере имя пользователя самба должно совпадать с именем учетной записи пользователя Линукс. А пароль не должен совпадать с паролем учетной записи. Добавим:

 sudo smbpasswd -a superuser 

Чтобы удалить пароль, введите:

 sudo smbpasswd -n superuser 

Активируем созданного пользователя samba:

 smbpasswd -e superuser 

  • где superuser имя  пользователя samba.

Теперь займемся непосредственно созданием сетевой папки. Задача — создать доступный администратору ресурс  по логину и паролю, в который можно попасть с любого компьютера . Создадим папку soft:

 sudo mkdir /media/soft 

Обязательно сменим владельца и группу  (папка создана в корневой файловой системе) на superuser:

 sudo chown superuser:superuser /media/soft 

Предоставим полные права  созданной папке ее новому хозяину:

 sudochmod  777 /media/soft 

Далее, начнем  заполнять наш конфигурационный файл в текстовом редакторе;  откроем его программой  kate (с наивысшими правами):

 sudo kate /etc/samba/smb.conf 

В файл конфигурации необходимо корректно вносить информацию, соблюдая пробелы:

Конфигурационный файл принято разбивать на секции. Каждая секция начинается с квадратных скобок. Глобальная секция содержит настройки касающиеся режимов работы файлового сервера.  И влияет на все что ниже. Имя  нашего общего ресурса — это следующая секция и т.д. Для нашей задачи настройки будут такими:

[global] workgroup = office
server string = server Астра Линукс 2,12 Орел
interfaces = 127.0.0.0/8, 192.168.1.2/24, 192.168.1.3/24

map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
security = user
usershare allow guests = yes

# Сетевая папка для админа

[soft] comment = пользовательский прикладной софт
path = /media/soft
create mask = 0775
directory mask = 0775
read only = no
browseable = yes
guest only = no
public = yes
valid users = admin, superuser
writeable = yes

Дополнительно в свойствах созданной папки можно менять  «дискреционные атрибуты» на просмотр, запись и исполнение  и смотреть потом, как это влияет на доступ:

Сохраняем содержимое; теперь нужно перезапустить сервисы samba, чтобы изменения вступили в силу:

 sudo service smbd restart   sudo service nmbd restart 

Множественное подключение к серверу или разделяемым ресурсам одним пользователем с использованием более одного имени пользователя не разрешено — как исправить ошибку (samba)?

При попытке зайти в папку по сети с другого компьютера возникает эта  ошибка. Чтобы ее обойти нужно  создать на компьютере с Линукс астра  нового пользователя системы , например:

 sudo adduser admin 

Можно  добавить нового пользователя Линукс Астра и  через «панель управления», там нагляднее:

Далее создать нового пользователя сервера samba под тем же именем:

 sudo smbpasswd -a admih 

Включить (активировать) его:

 sudo smbpasswd -e admih 

В конфигурационном файле smb.conf  подправить параметр «valid users = superuser, admin«,   рестарт служб самбы.   Далее, проверяем настройки файла hosts на  сервере..:

 sudo kate /etc/hosts 

… прописsdftv туда имя компьютера (хоста) на соответствие локальному хосту или назначенный ему локальный IP адрес:

После редактирования hosts машину перезагружаем. Для того, чтобы подробно ознакомиться с параметрами сервера samba, которые мы задали в файле читаем эту статью,

В компьютере с Windows вбиваем в проводник имя компьютера \homeastrasoft , вводим имя пользователя  и пароль. Можно для автоматического подключения при загрузке подключить нашу папку в качестве сетевого диска:

Если из Windows не удается настроить подключение из за непонятных глюков  чистим сетевой кеш в windows,  так, как это рассказано здесь.

Как предоставить анонимный доступ к  общей сетевой папке samba линукс из сети Windows?

В предыдущем примере  предоставили доступ к сетевой папке по логину и паролю. Но для обмена файлами пользователи часто используют общую гостевую папку, доступ по паролю в нее необязателен.

Сначала создадим гостевую папку для общего доступа:

 mkdir /media/gostevaya 

Выясним ее реальное расположение. Обратите внимание —   наша общая папка опять создана не в домашнем каталоге пользователя, а в файловой системе, это важно:

 realpath gostevaya 

Нужно изменить владельца папки на nobody и назначить соответствующую группу nogroup. По умолчанию самба воспринимает эти имена как гостевые. Один из способов команда chown:

 sudo chown nobody:nogroup /media/gostevaya 

и командой chmod  предоставим полные права на  содержимое :

 sudo chmod 777 /media/gostevaya 

Теперь в настройках файла smb.conf создаем еще одну секцию [gostevaya] со следующими параметрами..:

global] workgroup = office
server string = server ????? ?????? 2,12 ????
netbios aliases = s800 s801 s802 s803
interfaces = 127.0.0.0/8, 192.168.1.4/24, 192.168.1.5./24
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
security = user
usershare allow guests = yes

[gostevaya] comment = публичная папка
path = /media/gostevaya
read only = no
guest ok = yes
browseable = yes

[soft] comment = папка с софтом
path = /media/soft
create mask = 0775
directory mask = 0775
read only = no
browseable = yes
guest only = no
public = yes
valid users = admin,superuser
writeable = yes

В этом рабочем файле конфигурации перечислил параметры, значения которых можно менять и смотреть как это влияет на доступ. После чего сохраняем изменения и  перезапускаем службы. samba как  было показано выше. На блоге  позже планирую опубликовать полное описание параметров и настроек из man.

Как отключить ввод пароля для разблокирования связки ключей «Основная» при подключении сетевой папки?

При взаимодействии с сетью Windows (а так же при запуске приложений  Skype и других) Astra Linux каждый раз будет требовать ввода пароля для проверки легальности запуска того или иного потенциально опасного приложения. В качестве такой проверки нужно каждый раз вводить пароль.

Есть возможность отключить эту функцию, или сделать ее использование более удобным. Для этого потребуется пакет «Морская лошадь». Установим его:

 sudo apt install seahorse 

Запуск — команда из терминала

 seahorse 

Теперь можно проверять доступ к папке из Windows;  даже если система спросит пароль — ничего не вводите, должна пустить.

Как увидеть и подключить общую  сетевую папку Windows в Линукс Астра?

Если samba установлен, то можно вывести список ВСЕХ общих  папок командой в терминале:

 sudo smbtree -N 

либо СПИСОК открытых ресурсов на какой либо конкретной станции в сети:

 sudo smbclient -L \homeastra -n (если вход без пароля)
 sudo smbclient -L \homeastra -u username  (если вход по паролю)

В графическом режиме через файловый менеджер  можно найти нужную станцию и посмотреть ее общие ресурсы. Если  настройки сетевого доступа по паролю — нужно ввести имя и пароль:

После перезагрузки нужно будет опять вводить пароль. Чтобы сетевая папка автоматически подключалась при загрузке нужно ее примонтировать особым образом.

Как  настроить автоматические монтирование  сетевой  папки в Астра Линукс?

 sudo mount -t cifs -o username=Иван,password=123,uid=1000,iocharset=utf8 //192.168.1.22/Сетевая папка /media/22 

  • где  sudo mount команда на монтирование;
  •  -t cifs команада монтирования файловой системы (пакет cifs установлен по умолчанию в Астра Линукс);
  •  -o включаем  доп.опции монтирования;
  •  username, password имя пользователя и  его пароль (владелец папки);
  • uid 1000  — опция делает владельцем папки текущего пользователя линукс;
  • указание кодировки iocharset=utf8 помогает «понимать» русские символы в имени файлов и папок;
  • //192.168.1.22 адрес компьютера в сети или его имя;
  • /media/22 точка монтирования, в конечной папке «22»

Чтобы избежать ошибки BAD UNC при монтировании, перед IP адресом или именем компьютера обязательно должна быть двойная косая черта!

Далее,  надо сделать автоматическое монтирование сетевой папки при загрузке . Для этого размонтируем пока нашу шару:

 sudo umount  /media/mar 

И внесем изменения в файл /etc/fstab. Данные пользователей и пароли принято прятать. Файл fstab может открыть посторонний и легко получить пароли  других компьютеров. Нужно создать текстовый файл samba22

 sudo kate /samba22 

и записать туда  имя пользователя компьютера и его пароль в следующем виде, сохранить файл:

 username=Иван   password=123 

Узнаем путь до файла:

 realpath samba22 

В моем примере файл находится в папке home/superuser/samba22

Изменим права на файл samba22, чтобы другие пользователи не могли его просматривать и изменять:

 sudo chmod 600 /home/superuser/samba22 

теперь можно безопасно  использовать содержимое нашего файла samba22 в команде следующего вида:

//192.168.1.22/Сетевая папка /media/22 cifs credentials=/home/superuser/samba22,uid=1000,iocharset=utf8,nofail 0 0

Откроем на редактирование файл /etc/fstab

 sudo kate /etc/fstab 

И вставим нашу строку в этот файл. После внесенных изменений выполним команду:

 sudo mount -a 

Если содержимое сетевой папки появилось в точке монтирования, оно теперь будет появляться и после каждой перезагрузки, конечно если нужный компьютер включен. Теперь вы знаете как это делать и через терминал.

Вот и все на сегодня. В одной небольшой статье не охватить все тонкости настроек общих принтеров и папок. Для справки планирую перевод документации по samba в нескольких статьях на блоге! Удачи!

  • Live cd windows server 2003
  • Linux не видит разделы windows
  • Livecd windows 10 pe x86 x64 by ratiborus
  • List of all windows web browsers
  • Live cd windows pe 10 sergei strelec скачать торрент