Я только что обновил сервер Ubuntu до 14.04, а самба поднялась до 4.1.6. Моя общедоступная папка (локальная домашняя сеть, поэтому я не беспокоюсь о безопасности столько, сколько семья получает доступ к файлам просто и анонимно), перестала работать, то есть теперь она будет запрашивать имя пользователя и пароль.
когда я запускаю testparm, я получаю:
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = HOHWORKGROUP
server string = firewig
interfaces = eth1, 127.0.0.0/8, 192.168.10.0/24
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
name resolve order = lmhosts, wins, bcast, host
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
valid users = nobody
[share]
comment = share
path = /srv/samba/share/
force user = nobody
force group = nogroup
read only = No
create mask = 0777
force create mode = 0777
directory mask = 0777
force directory mode = 0777
guest ok = Yes
Кажется, я не могу заставить мою машину Windows (W7) иметь возможность анонимного доступа к общему ресурсу. Не уверен, что здесь не так с моей конфигурацией.
Вы должны быть осторожны с вариантами.
valid users=nobody
, например, не означает, что пользователь nobody
разрешен вход. Это означает, что ни один другой пользователь но nobody
можно авторизоваться.
Поскольку вы, очевидно, можете разрешить гостевой доступ, просто удалите valid users=nobody
из глобального раздела.
Кроме того, пока вы правильно установили map to guest = bad user
, вы также должны проверить, какой пользователь играет роль guest
в вашей системе. Видимо, вы только что предположили, что это nobody
но это не обязательно так. Если вы не уверены, вы можете указать его вручную с помощью guest account = nobody
. Разумеется, nobody
должен существовать в вашей системе!
Затем вам нужно убедиться, что общий ресурс имеет соответствующие разрешения POSIX для nobody
. Например, если ваши права доступа к файлу позволяют nobody
чтобы читать файлы в общей папке, но не изменять их, то writeable
вариант в smb.conf
не собирается отменять это.
Теперь мы переходим к разделу общего доступа вашего smb.conf, мы можем сделать это намного проще. Если вы хотите сопоставить все действия с гостевой учетной записью, вам не нужно использовать force user
и force group
. Просто используйте параметр guest only = yes
вместо. Вместе с guest ok = yes
это приведет к тому, что все подключения будут сопоставлены с правильной гостевой учетной записью, в нашем случае nobody
.
Результат (для полного гостевого доступа):
# chmod -R a+rwX /srv/samba/share
/etc/samba/smb.conf
-------------------
[global]
guest account = nobody
map to guest = bad user
[share]
path = /srv/samba/share
writeable = yes
guest ok = yes
guest only = yes
Не могли бы вы сказать нам, какая версия ядра используется?
Есть проблема с самбой при использовании с последними версиями ядра, потому что ядро требует зашифрованных паролей или другая проблема.
У меня есть одна Ubuntu 14.04.1, где я понизил samba с 4.1 до 3.6.3-2ubuntu2, потому что после обновления до samba 4.1 не работал. На этой машине, если я использую samba 3.6 с ядром 3.13, не работает, но если я использую ядро 3.2, он работает.
Попробуйте изменить свой grub или lilo для загрузки со старым ядром и сообщите нам, работает ли оно.
Для анонимного доступа может помочь создание поддельной доли IPC $:
[IPC$]
guest ok = yes
read only = yes
path = /etc/samba/fakeIPC
valid users = @group-of-home-users, nobody
#or
# valid users = nobody
Это решило некоторые проблемы для меня. Не помню, где об этом читал.