У меня проблемы с настройкой совместного использования самбы для доступа к общим ресурсам.
Я установил автономный компьютер с Fedora 16 для использования в качестве сервера для обмена файлами и веб-разработки. Он должен иметь возможность обмениваться файлами с ПК с Windows 7 и Mac под управлением OSX Snow Leopard.
Я установил Samba с помощью графического интерфейса пользователя Samba в Fedora. Добавил пользователей в Fedora и подключил их как пользователей Samba (которые совпадают с именами пользователей и паролями Windows и Mac). Имя рабочей группы такое же, как и у рабочей группы Windows. Аутентификация установлена на пользователя. Я разрешил Samba и клиент Samba через брандмауэр и установил Ethernet на доверенный порт в брандмауэре.
Компьютеры с Windows и Mac могут подключаться к серверу и просматривать общие ресурсы, однако при попытке доступа к общим ресурсам Windows выдает ошибку:
0x80070035 " Windows cannot access \\SERVERNAME\ShareName."
Пользователю Windows не предлагается ввести имя пользователя или пароль при доступе к серверу (находится в разделе «Сетевое окружение»). Это также происходит при подключении по IP, а не по имени сервера.
Mac также может подключиться к серверу и увидеть общие ресурсы, но при выборе общего ресурса выдает ошибку:
The original item for ShareName cannot be found.
При подключении через IP пользователю Mac предлагается ввести имя пользователя и пароль, который при аутентификации дает список общих ресурсов, однако при выборе общего ресурса для подключения отображается ошибка, и пользователь не может получить доступ к общему ресурсу.
Поскольку обе машины действуют одинаково при попытке доступа к общим ресурсам, я предполагаю, что это проблема с настройкой Samba.
smb.conf:
[global]
workgroup = workgroup
server string = Server
log file = /var/log/samba/log.%m
max log size = 50
security = user
load printers = yes
cups options = raw
printcap name = lpstat
printing = cups
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
printable = yes
[FileServ]
comment = FileShare
path = /media/FileServ
read only = no
browseable = yes
valid users = user1, user2
[webdev]
comment = Web development
path = /var/www/html/webdev
read only = no
browseable = yes
valid users = user1
Как заставить работать самбу?
ОБНОВЛЕНИЕ: я понял это, потому что я использовал второй жесткий диск. См. Проверенный ответ ниже.
Предположение 1: До этого ящика у меня был другой ящик с той же установленной версией Fedora (16) и самба, работающая на этих же компьютерах. Я запустил старую машину и скопировал файл smb.conf со старой машины на новую (конечно, редактируя определения общих папок для новых общих ресурсов), но все равно получаю те же ошибки на обеих клиентских машинах. Единственная разница в среде - это оборудование и маршрутизатор. На старом компьютере маршрутизатор получил динамический общедоступный IP-адрес и назначил динамические частные IP-адреса каждому устройству в сети, в то время как новый компьютер подключен к маршрутизатору, имеющему статический общедоступный IP-адрес (хотя все еще динамические внутренние IP-адреса). влияет на Samba?
Предположение 2: поскольку каталог, которым я пытаюсь поделиться, на самом деле является целым внутренним диском, я пробовал следующие вещи:
1.) изменение владельца смонтированного диска с root на моего пользователя (это то же имя пользователя, что и на машине Windows)
2.) сделал общий ресурс, который включал только одну из папок на диске вместо всего диска с моим пользователем снова в качестве владельца.
Оба теста не дали результата, и я получил одинаковые ошибки в отношении сетевого адреса.
Предположение 3: всякий раз, когда я пытаюсь подключиться к общему ресурсу на клиенте Windows 7, мне предлагается ввести имя пользователя и пароль. Когда я ввожу правильные учетные данные, я получаю сообщение об отказе в доступе. Однако я заметил, что под полем входа в систему указан домен: WINDOWS-PC-NAME. Я считаю, что это вполне может быть проблемой.
Предположение 4: Итак, я полностью переустановил Fedora и Samba. Я создал общий ресурс на первом жестком диске (на котором установлена одна Fedora), и я могу получить доступ к нему из Windows. Однако, когда я пытаюсь поделиться какими-либо данными на втором диске, я получаю ту же ошибку. Я считаю, что это проблема. Я думаю, мне нужно что-то изменить в fstab или fdisk или еще где-то.
Предположение 5: Итак, в fstab я подключил диск к автоматическому монтированию в папку, которая работает правильно. Я также добавил метку samba_share_t SElinux в каталог точки монтирования, который теперь позволяет мне получать доступ к общим ресурсам на машине Windows, однако я не вижу ни одного из файлов в каталоге на машине Windows. (Они есть, я вижу их в файловом браузере Fedora локально)
Наконец то получил. Итак, во-первых, проблема заключалась в том, что я пытался использовать второй жесткий диск вместо данных на том же диске, на котором была установлена ОС. Вот шаги, чтобы иметь возможность поделиться вторым диском через Samba: (Они предназначены для внутреннего диска, но я думаю, что это также может сработать для внешних)
1.) Вы должны настроить привод для автоматического монтирования в fstab. Добавить:
/dev/sdbx /mountpoint ext3 auto 0 0
в / etc / fstab, где x - номер раздела для диска, «/ media / mountpoint» - это каталог монтирования (я создал каталог с именем / share и смонтировал туда диск), а «ext3» - файловая система
2.) установите разрешение для точки монтирования на 755:
chmod 755 /mountpoint
3.) Добавьте новую метку SElinux "samba_share_t" и примените эту метку к точке монтирования.
chcon -t samba_share_t /mountpoint
4.) Примените эти разрешения ко всем вложенным файлам и папкам. (Для этого я использовал графический интерфейс Gnome)
Я могу читать и писать в общий ресурс как с ПК с Windows 7, так и с Mac под управлением OSX.
Опубликуйте свой smb.conf, чтобы мы могли проверить, все ли у вас в порядке.
Самая важная часть вашего smb.conf выглядит примерно так:
[name_of_the_shared_folder_resource]
valid users = user1 user2 #you can use groups
public = no
path = /var/www #the path of your folder
printable = no
writable = yes
Помните, бегите smbpasswd
для каждого пользователя для создания пароля Samba.
Еще один важный момент ... перезапустите Samba. :П
У меня была такая же проблема, наконец-то я смог ее решить, отредактировав /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled # if the files dont appears is because this parameters is not disabled
убедитесь, что вы видите, что самба работает, используя netstat
netstat -an | grep LISTEN | egrep "445"
также попробуйте добавить привязку интерфейса в конфиг:
interfaces = eth0
или interfaces = <ip address>
в smb.conf