LINUX.ORG.RU

Не работает раздача сетевых каталогов по Samba

 , , , ,


0

1

Есть анекдот «когда в Windows проблема, при решении проблемы выясняется что винда тупая. Когда в Linux проблемы, при решении проблемы выясняется что ты тупой». Ну и где же я тупой?

Ситуация. На компьютере с Windows - принтер HP. Раздаётся в сеть. Мой компьютер с Windows видит на другом компьютере принтер, а также сетевые каталоги. Дважды щёлкаем, принтер работает, можно печатать.

Перезагружаюсь в Linux, захожу в Konqueror (это из KDE, если кто-нибудь не знает) на smb:/ и на нужный компьютер. Сетевые каталоги есть, принтера нет. Но в интернете я нашёл интересную команду smbclient -L, которая принтер показала. Интересно то, что команда требует пароля даже если запускается от root (правда, срабатывает даже если ничего не вводить):

smbclient -L 192.168.1.2
Enter zenitur's password:
Domain=[ATOM] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        Мои документы Disk
        IPC$            IPC       Удаленный IPC
        print$          Disk      Драйверы принтеров
        SharedDocs      Disk
        C               Disk
        Принтер4 Printer   Microsoft Office Document Image Writer
        Рабочий стол Disk
        Printer3        Printer   hp LaserJet 1010 Series Driver
        ADMIN$          Disk      Удаленный Admin
        C$              Disk      Стандартный общий ресурс
        Принтер  Printer   Microsoft XPS Document Writer
session request to 192.168.1.2 failed (Called name not present)
session request to 192 failed (Called name not present)
Domain=[ATOM] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

Ага, принтер виден. Забегая вперёд скажу, что я переименовал «Принтер3» в «Printer3», когда ничего не работало, потому что Konqueror в smb:/ видел русские буквы названий компьютеров в неправильной кодировке. И я думал что это может решить проблему, более того, кому-то это помогало: Установка Windows принтера на OpenSuse 10.3 (комментарий).

Окей, открываю утилиту добавления нового принтера от HP, называется hp-setup (скриншот). Выполняю поиск сетевых принтеров - результата нет (скриншот). Выбираю «указать адрес вручную» и указываю адрес вручную (скриншот) - результата нет. Неужели я что-то делаю не так?

Ладно, открываю http://localhost:631/, веб-интерфейс сервера печати CUPS версии 1.4.6 (скриншот). В нём по-очереди нажимаю управление принтерами (скриншот) и Найти новый принтер (скриншот). Первый диалог попросил адрес принтера и после того, как я его ввёл, сказал что не найдено (здесь я тупой, потому что имелся в виду поиск принтеров из списка уже добавленных в список ниже). Второй диалог мгновенно ответил то, что не обнаружено ни одного принтера.

Наконец, я нажал на самую первую и главную кнопку «Добавить принтер». Наконец-то у меня спросили пароль (скриншот). На секунду мелькнула надпись «Поиск принтеров», после чего я увидел то, что на скриншоте. Конечно я выбрал последний вариант «Windows Printer via SAMBA». Я-то думал, сейчас поищет и выдаст список, но нет, он попросил ввести адрес принтера вручную. Снова, как и в диалоге «Управление принтерами», ввожу «smb://192.168.1.2/Printer3» (скриншот). Затем нужно придумать название принтера самому! Затем вручную выбрать драйвер либо указать PPD-файл (скриншот 1, 2)! В этом шаге диалога я оставил всё по-умолчанию. Ура, принтер добавлен - напрягает только то, что URL-адрес принтера и его название я вводил сам, они не определились автоматически.

Пробую напечатать текстовый документ (скриншот). Не печатается! Напомню, из Windows печатается. Задание просто бесконечно долго висит в списке заданий (скриншот). Мне не осталось ничего другого, кроме как удалить принтер (скриншот).

Ну и кто здесь тупой?

Ладно, попробую хотя бы сделать доступными сетевые каталоги пользователя (описание проблемы через абзац внизу). Открываю «Сервер Samba», скриншоты выбранных настроек: 1, настройки брандмауэра, 2, 3, 4, 5. После изменения содержимого вкладки «Идентификация» (скриншот и вкладка 3) у меня почему-то спросили какой-то пароль, при этом логин уже был введён, Administrator. У меня такое спрашивают в Windows при попытке открыть каталог Program Files, но никакой пароль не подходит. К счастью, есть кнопка «Не входить». Скриншоты: какое-то предупреждение после смены названия компьютера сети, запрос пароля.

В YAST нашлась вторая программа для настройки Samba, «Членство в сети Windows». Скриншоты: 1, "Настройки эксперта...".

Ну и что я делаю неправильно-то? С компьютеров Windows виден мой компьютер, но при попытке зайти в него, чтобы посмотреть список сетевых каталогов, ошибка. А раньше моего компьютера даже не было в списке, пока в «Настройках брандмауэра» я не поставил галочку «Защитить брандмауэр от внутренней зоны» (без галочки, с галочкой). Кроме того, если с моего компьютера с Linux заходить на компьютеры с Windows, то список компьютеров появляется не мгновенно, как если загрузить Windows (или как дома с двумя компьютерами с Linux, соединёнными кабелем). Не мгновенно появляется и список файлов в сетевых каталогах. Пользуюсь файловым менеджером Konqueror. Зато хоть работает, и даже позволяет копировать мои файлы в сетевые каталоги, как и должно работать.

Как заставить работать сетевой принтер, как открыть доступ к своему компьютеру по сети (включая запись в каталоги) и убрать эту задержку при просмотре сетевых каталогов в Konqueror?

Ты как-то рассказал про всё, кроме фаервола. Что в разделах «Интерфейсы» и «Широковещательная рассылка»?

И еще: почему у тебя включены чекбоксы «Использовать WINS» и «Получать адрес WINS»? У тебя действительно есть рабочий WINS сервер в сети?

Geed ()

Как заставить работать сетевой принтер

В Fedora (которая, естественно, не нужна, говно и вообще тестовый глюкодром) это делается стандартной утилитой и всего за пару минут.

Кроме того, если с моего компьютера с Linux заходить на компьютеры с Windows, то список компьютеров появляется не мгновенно

В linux'е samba-браузер запускается только когда ты хочешь посмотреть список компьютеров. В windows он работает постоянно с момента запуска системы (если его специально не выключить). Это одно из отличий.

Deleted ()
Ответ на: комментарий от Geed

Интерфейсы, Широковещательная рассылка. eth0 остался от старого компьютера. Никаких WINS у меня нет, я не знаю что это такое (как и LDAP). Поставил галочки просто так, надеясь что это всё починит. Убрать?

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от Deleted

В Fedora (которая, естественно, не нужна, говно и вообще тестовый глюкодром) это делается стандартной утилитой и всего за пару минут.

Тащемта и в suse, если постараться, то можно уложиться с настройкой самбы в пару минут. Но если специально за временем не следить, больше одной минуты оно не занимает. :D

Geed ()
Ответ на: комментарий от Deleted

>> Как заставить работать сетевой принтер

> В Fedora (которая, естественно, не нужна, говно и вообще тестовый глюкодром) это делается стандартной утилитой и всего за пару минут.

Надо обязательно попробовать. Всё-таки это тот самый дистрибутив Linux, в котором делается всё новое для десктопа.

>> Кроме того, если с моего компьютера с Linux заходить на компьютеры с Windows, то список компьютеров появляется не мгновенно

> В linux'е samba-браузер запускается только когда ты хочешь посмотреть список компьютеров. В windows он работает постоянно с момента запуска системы (если его специально не выключить). Это одно из отличий.

Можно ли что-нибудь исправить? Загрузку Samba я включил при загрузке системы.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

Убрать?

Убрать

Yast->Security and Users->Firewall->Broadcast
В списке Accept the Broadcast Reply должны присутствовать:
зона, которая у тебя назначена на сетевой карте (Internal zone); Samba browsing; подсеть с маской, например 192.168.0.0/24

Geed ()
Ответ на: комментарий от ZenitharChampion

Подсеть это то, что после слэша. Ты ввел 0/0, то есть любой адрес без маски, о чем в интерфейсе и написано: «Все сети».

Geed ()
Ответ на: комментарий от Geed

Так я ввёл правильно? Мой компьютер был и остаётся виден (какое-то длинное имя со словом Samba и номером версии), но на него нельзя зайти. Мне почему-то кажется, что правка одной строчки в /etc/smb.conf решит проблему. Но так хотелось, чтобы в openSUSE настройка Samba производилась из графического интерфейса до конца.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Так я ввёл правильно?

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

Мне почему-то кажется, что правка одной строчки в /etc/smb.conf решит проблему. Но так хотелось, чтобы в openSUSE настройка Samba производилась из графического интерфейса до конца.

Вообще-то проводится. От начала до конца. В твоём конкретном случае, нужна не настройка, а поиск и устранение косяков в настройке. Скорее всего дело в том, что за неимением LDAP, бэкэндом авторизации у тебя служит smbpasswd, а в нем - пустота. Покажи, что у тебя в «Настройки Samba»->«Идентификация»->«Дополнительные настройки», и вывод «sudo pdbedit -L -v» - в студию.

Geed ()
Ответ на: комментарий от Geed

Скриншоты: 1, 2. Вывод команды pdbedit -L -v:

# pdbedit -L -v
tdbsam_open: Converting version 0.0 database to version 4.0.
tdbsam_convert_backup: updated /etc/samba/passdb.tdb file.
#
ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Вот тут: http://img337.imageshack.us/img337/5900/yast224.png у тебя стоит

security domain
хотя что-то мне подсказывает, что рабочего домена у тебя и близко нет. Поменяй либо на
security user
тогда нужно будет подобавлять пользователей в самбу через pdbedit --create, либо на
security share
тогда будет работать как типичная файлопомойка. И неплохо бы установить
wins support no
Еще нужно добавить к каталогам с общим доступом параметр
browseable yes
если его вдруг еще нет.

Geed ()
Ответ на: комментарий от Geed

Опять не работает, Windows говорит что «нет прав для доступа к ресурсу. или ресурс недоступен». Мгновенно причём говорит. Достал. Скопирую конфиг с домашней Gentoo, если не разберусь с YaST или если мне кто-нибудь не поможет.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Опять не работает

Который из двух вариантов?

По IP заходит?

Geed ()
Ответ на: комментарий от Geed

А как по IP зайти из Windows? В «Все компьютеры сети» я захожу в MSHOME и вижу компьютер Samba-что-то-там-куча-цифр. Пробую зайти - и ошибка.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

А как по IP зайти из Windows?

Набрать в адресной строке эксплорера (он же «Мой Компьютер», он же «Сетевое Окружение») вместо \\NetworkComputer\, его IP, например \\192.168.0.11\

Geed ()
Ответ на: комментарий от Geed

Тоже не удаётся.

# smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
# Date: 2011-03-01
[global]
	workgroup = MSHOME
	passdb backend = tdbsam
	printing = cups
	printcap name = cups
	printcap cache time = 750
	cups options = raw
	map to guest = Bad User
	logon path = \\%L\profiles\.msprofile
	logon home = \\%L\%U\.9xprofile
	logon drive = P:
	usershare allow guests = Yes
	add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
	domain logons = No
	domain master = No
	security = share
	wins support = No
	usershare max shares = 100
	netbios name = Mamin_komputer2

[homes]
	comment = Home Directories
	valid users = %S, %D%w%S
	browseable = No
	read only = Yes
	inherit acls = Yes

[profiles]
	comment = Network Profiles Service
	path = %H
	read only = Yes
	store dos attributes = Yes
	create mask = 0600
	directory mask = 0700

[users]
	comment = All users
	path = /home
	read only = Yes
	inherit acls = Yes
	veto files = /aquota.user/groups/shares/

[groups]
	comment = All groups
	path = /home/groups
	read only = Yes
	inherit acls = Yes
[printers]
	comment = All Printers
	path = /var/tmp
	printable = Yes
	create mask = 0600
	browseable = No
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	write list = @ntadmin root
	force group = ntadmin
	create mask = 0664
	directory mask = 0775

## Share disabled by YaST
# [netlogon]

[windows]
	comment = Windows
	inherit acls = Yes
	path = /windows
	read only = No
ZenitharChampion ★★★★★ ()
Ответ на: комментарий от Geed

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

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

У тебя ни в одном из разделов share нет опции

browseable = Yes
Добавь либо в /etc/samba/smb.conf [windows], либо через yast->network services->samba server->shares->windows->edit

Geed ()
Ответ на: комментарий от Geed

Но ведь он же не может отобразить не содержимое каталога, а вообще список каталогов и принтеров. Спасибо, попробую!

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

А то я почитал тут статью в журнале Linux Format. http://wiki.linuxformat.ru/index.php/LXF95:Ни_секунды_простоя Там придумали заковристые вопросы, чтобы задать техподдержкам разных дистрибутивов Linux. Цитирую:

Проблема 2
Я уверен, что правильно настроил общий доступ к файлам, но пользователи рабочих станций Windows не могут войти в систему.

Очень часто нужно обеспечить доступ к файлам Linux с компьютеров, на которых установлена Windows. Для этого используется пакет Samba, Суета вокруг дивана который позволяет пользователям Windows получить доступ к файлам на компьютерах с Linux. В некоторых дистрибутивах необходимо добавить к существующим в системе учетным записям дополнительные, которые будут использоваться Samba. Если этого не сделать (а я этого не сделал), пользователи не смогут войти в систему.

Решение: Необходимо добавить пользователя(-лей) в файл паролей Samba с помощью команды smbpasswd -a.

Попробовал! Кстати, какого пользователя надо создавать? Я попробовал zenitur, своего юзера. Выдало ошибку. Похоже, создаётся пользователь в списке пользователей системы, а не в каком-то своём собственном списке пользователей Samba.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)

команда требует пароля даже если запускается от root (правда, срабатывает даже если ничего не вводить):

Все правильно делает. Просит пароль для доступа к удаленной системе. Подразумевая, что имя пользователя = $USER

Не печатается! Напомню, из Windows печатается.

А в логе cups-а скорее всего «доступ запрещен»))

Kuzz ★★★ ()
Ответ на: комментарий от Kuzz

Можно подробнее? Лог поищу в понедельник, а где CUPS настраивать? Достаточно ли веб-интерфейса настройки, или нужен Webmin либо правка конфигов?

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

Мгновенно причём говорит.

На какое то время отлуп кешируется.

Kuzz ★★★ ()
Ответ на: комментарий от ZenitharChampion
cat /etc/samba/smb.conf
[global]
	log file = /var/log/samba/log.%m
	restrict anonymous = no
	socket options = SO_KEEPALIVE TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
	read prediction = yes
	wins server = 192.168.0.254
	interfaces = lo eth3 eth1
	username map = /etc/samba/user.map
	null passwords = yes
	encrypt passwords = yes
	public = yes
	realm = ururu.local
	template shell = /bin/false
	case sensitive = no
	netbios name = HELLGATE
	writeable = yes
	password server = bla-bla.ururu.local
	default = global
	dos charset = 866
	remote announce = 192.168.0.1/<cut> 172.16.0.1/WIFI
	workgroup = <cut>
	debug level = 5
	os level = 20
	security = share
	guest only = no
	unix charset = UTF-8
	preferred master = no
	domain logons = no

	
[share]
	writeable = yes
	guest only = yes
	path = /home/Programs

[ris]
	comment = Remote install
	writeable = no
	path = /var/lib/tftpboot

realm и password server - потому что взаимодействует с доменом user.map - сопоставление пользователей. Оно не обязательно

Достаточно ли веб-интерфейса настройки, или нужен Webmin либо правка конфигов?

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

Kuzz ★★★ ()
Ответ на: комментарий от Kuzz

Сейчас сгенерил конфиг у себя Главное в нем: DeviceURI

cat printers.conf
# Printer configuration file for CUPS v1.5.4
# Written by cupsd on 2012-09-08 22:50
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<Printer Generic-text-only>
UUID urn:uuid:b8752471-662a-3f35-7f1c-0397b72e01da
Info Generic text-only
Location 
MakeModel Generic text-only printer
DeviceURI smb://Admin:password@srv.bla-bla.ururu.local/Printer
State Idle
StateTime 1347133827
Type 4100
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>

Kuzz ★★★ ()
Ответ на: комментарий от ZenitharChampion

Похоже, создаётся пользователь в списке пользователей системы, а не в каком-то своём собственном списке пользователей Samba.

Смотря чем и как создавал. Для Samba пользователи создаются\редактируются через pdbedit или smbpasswd. Поскольку у тебя

passdb backend = tdbsam
то в твоем случае именно pdbedit.
Но поскольку у тебя
security = share
то пользователи тут вообще не при чем.

Geed ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.