ПРИМЕЧАНИЕ. Я прочитал, вероятно, до 50 разных страниц, описывающих, как настроить общедоступный ресурс Samba в промежутке 2 ГОДА и у меня ничего никогда не работало. Я не знаю, сколько RTFM мне нужно, чтобы установить это.
Мне нужно / я хочу настроить полностью открытый общий файловый ресурс на моем домашнем сервере для двух рабочих станций.
Настройка выглядит следующим образом:
Сервер:
sudo smbd --version
дает мне Version 3.6.6
.Клиент:
Мой smb.conf после перегонки выглядит следующим образом (дословно, больше ничего нет):
[global]
workgroup = WORKGROUP
security = user
map to guest = Bad User
[disk1]
comment = Disk 1 on 400GB HDD
path = /media/disk1
browsable = yes
guest ok = yes
read only = no
create mask = 0755
[disk2]
comment = Disk 2 on 400GB HDD
path = /media/disk2
browsable = yes
guest ok = yes
read only = no
create mask = 0755
На обеих клиентских машинах, как в Debian, так и в Windows, я получаю один и тот же результат: диалог входа / пароля. НЕТ КОМБИНАЦИИ security = user
, map to guest = Bad user
, security = share
, guest ok = yes
и такое помогло.
Windows 7 показывает диалоговое окно входа / пароля сразу после того, как я нажимаю на общий компьютер в сетевом окружении. smb://homeserv/
путь к файлу в Debian (в любом файловом браузере) показывает мне две папки: disk1
и disk2
, как и предполагалось, при попытке открыть их вывести диалоговое окно входа в систему / пароля.
Итак, чего мне не хватает в схеме, чтобы НЕ НАДО вводить логин / пароль? Это вопрос удобства использования, я не буду создавать пользовательскую аутентификацию для файловой свалки.
Хорошо, я сам нашел ответ.
Как это совершенно не очевидно из документации, HOWTO и всего остального, причина, по которой эта вещь запрашивает пароль, заключается в том, что она не может сопоставить гостевого пользователя с владелец разделяемого каталога.
У меня есть разделы NTFS, которые мне нужно для монтирования RW, поэтому я использовал следующую настройку в моем /etc/fstab
:
/dev/sdb1 /media/disk1 ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0 2
/dev/sdb2 /media/disk2 ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0 2
Наиболее важные части конфигурации: uid
и gid
(может быть, только uid
, не знаю). Они устанавливаются на UID и GID пользователя. jonnie
настроил на сервере (явно не root). Итак, когда ntfs-3g смонтирует эти диски, все будет принадлежать ему.
После этого я добавил этого пользователя в реестр Samba (или, может быть, создал нового идентичного, все равно):
# smbpasswd -a jonnie
Он запросил пароль, я ввел тот же, что и для основной системы.
После этого я добавил force user
и force group
настройки в smb.conf
:
[global]
workgroup = WORKGROUP
netbios name = HOMESERV
security = share
[disk1]
comment = Disk 1 on 400GB HDD
path = /media/disk1
browsable = yes
guest ok = yes
read only = no
create mask = 666
directory mask = 777
force user = jonnie
force group = jonnie
[disk2]
comment = Disk 2 on 400GB HDD
path = /media/disk2
browsable = yes
guest ok = yes
read only = no
create mask = 666
directory mask = 777
force user = jonnie
force group = jonnie
Так, самое важное часть конфигурации, относящаяся ко мне, была force user
.
Предоставлено Samba HOWTO
Конфиг может быть короче:
Создать пользователя unix jonnie
useradd jonnie -s /usr/sbin/nologin
Создать smbuser
smbpasswd -a jonnie
Создайте каталог Linux для совместного использования
mkdir /mysmbshare
Измените владельца каталога на jonnie
chown /mysmbshare jonnie
smb.conf
[global]
workgroup = MyWorkGroup
server string = Hello, use me
security = share
guest account = jonnie
passdb backend = tdbsam
[the_public_share]
path = /mysmbshare
writable = yes
printable = no
public = yes
Все файлы принадлежат jonnie, и у всех есть доступ к файлам rw.
Быстрый и грязный способ получить открытый общий ресурс Samba - это иметь:
# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.
security = share
passdb backend = tdbsam
и имеет общие определения как таковые:
[export]
comment = Data Export Directory
path = /data/export
read only = no
public = yes
browseable = yes
writeable = yes
create mask = 666
directory mask = 777
Перезапустите демон.
Для клиентов Windows 7, начиная с 2014 года, мне нужно было установить политику домена: цифровая подпись сообщений всегда отключить.