В недавно установленной системе CentOS 6 у меня есть следующий простой файл smb.conf, скопированный из другой системы, где он работает должным образом:
workgroup = MYDOMAIN
browseable = yes
[homes]
guest ok = no
read only = no
[tmp]
path = /tmp
read only = no
guest ok = yes
[backups]
path = /backups
read only = no
guest ok = no
Я отключил SELinux и пропустил порты Samba на брандмауэре. Я установил joeпароль самбы с smbpasswd -a joe. /home/joe и /home иметь 755 разрешений и /home/joe есть пользователь / группа joe. /backups имеет пользователя / группу root и права доступа 777.
Это должно позволить пользователю joe с разрешением на доступ / резервное копирование для подключения к чтению / записи \ hostname \ backups в Windows или через клиент samba на том же хосте Linux. Он также должен разрешать доступ к \ hostname \ joe (домашний каталог), учитывая, что joe может получить доступ к его домашнему каталогу /home/joe.
Используя клиент Linux на локальном хосте:
$ smbclient --user joe '\\hostname\joe'
Enter joe's password:
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
62359 blocks of size 33553920. 59182 blocks available
smb: \> cd Documents
smb: \Documents\> ls
NT_STATUS_ACCESS_DENIED listing \Documents\*
62359 blocks of size 33553920. 59182 blocks available
smb: \Documents\>
Итак, здесь я могу подключиться к общему ресурсу, но не вижу содержимого, но могу перейти в каталог, который, как я знаю, там есть. Обратите внимание, что /home/joe/Documents также 755 и принадлежит joe.
Сейчас попробую зайти backups:
$ smbclient --user joe '\\hostname\backups\'
Enter joe's password:
Domain=[MYDOMAIN] OS=[Unix] Server=[Samba 3.5.10-125.el6]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
Так что в этом случае я вообще не могу подключиться к общему ресурсу. Далее, я вижу из tail -f /var/log/samba/log.smbd:
[2013/02/22 11:09:49.734263, 0] smbd/service.c:988(make_connection_snum)
canonicalize_connect_path failed for service backups, path /backups
Это сообщение не появляется, если я подключаюсь к своей домашней папке. /backups определенно существует, имеет режим 777 и является точкой монтирования для внешнего устройства RAID, которое работает нормально.
У меня есть другая система с практически идентичной конфигурацией, за исключением того, что это CentOS 5 и Samba 3.0.33 вместо 3.5.10. Там все работает как положено.
В Windows при попытке доступа к \\hostname\backups или \\hostname\joe (с правильными учетными данными, конечно) дает бесполезный диалог «У вас нет разрешений ...» с «Подробностями»: «Не удалось найти имя сети».
Пожалуйста, помогите мне разобраться в этом!
Вероятно, вам нужно перейти на iptables. Попробуй это:
/sbin/iptables -I INPUT -s adreess -m state --state NEW -p tcp --dport 137 -j ACCEPT
/sbin/iptables -I INPUT -s address -m state --state NEW -p tcp --dport 138 -j ACCEPT
/sbin/iptables -I INPUT -s address -m state --state NEW -p tcp --dport 139 -j ACCEPT
/sbin/iptables -I INPUT -s address -m state --state NEW -p tcp --dport 445 -j ACCEPT
pd: извините за английский, я использую переводчик Google.