Во-первых, я использую Samba, потому что, хотя основные компьютеры — Ubuntu 14.04, у меня есть ноутбуки с Windows. Эти ноутбуки должны получить доступ на чтение к основной базе данных. Основная база данных находится на моем «сервере», который является одной из машин Ubuntu.
Я перехожу от одной проблемы к другой и не могу решить ее правильно. Помощь была бы очень кстати.
Вот требования:
- База данных, которую я хочу открыть для общего доступа/отредактировать, находится в /home/valleysecurity/Documents/Shared/ на одной из машин Ubuntu, которую я назову «сервер». В этой папке есть папки и файлы. Все остальные машины Ubuntu я назову «клиент».
- На всех компьютерах Ubuntu есть одни и те же пользователи: admin, valleysecurity и technicalsupport. У каждого пользователя одинаковый SID и пароль на каждом компьютере. - Только эти пользователи могут редактировать/изменять/модифицировать файлы и папки. - Когда создается новый документ или папка, они должны иметь те же атрибуты безопасности, что и остальная часть иерархии папок: user = {whoeverCreatedit}, group = valleygatehouse. - Все три пользователя определены в группе «valleygatehouse».
- Все компьютеры находятся в рабочей группе под названием «valleygatehouse»
Текущая проблема:
Из клиента я вижу группу valleygatehouse, но когда я нажимаю на группу, мне предлагают ввести пароль. В вызове уже указан идентификатор пользователя, который является тем пользователем, которым я являюсь в данный момент. Он не принимает пароль и продолжает спрашивать пароль. Как это исправить?
Примечание: Я совсем запутался, использовать ли встроенные функции Nautilus, пользовательский интерфейс Samba или редактировать файл .conf или что-то еще. Кажется, они работают в противоположных целях. Плюс, «текущая» документация повсюду в плане соглашений об именовании; например, smbusers против users для хранения пользователей, и должен ли этот файл содержать всех пользователей плюс что-то еще или только одного пользователя???? Аргхх!
PS. Я могу устранить эту проблему, используя Nautilus, чтобы изменить все папки, чтобы разрешить гостям Samba и разрешить RW для "других". Но это нарушает требования безопасности. Кроме того, когда я создаю новый документ на клиенте, его пользователь - "nobody", а его группа - "nobody".
И какое отношение в этом случае имеет smb.conf?
Сервер smb.conf:
[global]
workgroup = valleygatehouse
server string = %h server (Samba, Ubuntu)
server role = standalone server
dns proxy = no
name resolve order = lmhosts wins bcast host
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
encrypt passwords = no
; passdb backend = tdbsam
; obey pam restrictions = yes
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
; unix password sync = yes
# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
guest account = nobody
; username map = /etc/samba/smbusers
[Shared]
comment = Valley Security documents
path = /home/valleysecurity/Documents/Shared
browseable = yes
guest ok = yes
available = yes
writeable = yes
read only = no
username = valleysecurity,admin,technicalsupport
create mask = 0775
directory mask = 0775
[printers]
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
guest ok = yes
read only = no
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
writeable = yes
read only = no
Клиент smb.conf
[global]
workgroup = valleygatehouse
server string = Samba Server
server role = standalone server
log file = /usr/local/samba/var/log.%m
max log size = 50
dns proxy = no
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
guest ok = yes
read only = no
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
writeable = yes
read only = no
решение1
Попробуйте использовать
valid users = valleysecurity,admin,technicalsupport
вместо
username = valleysecurity,admin,technicalsupport
и убедитесь, что на «сервере» созданы пользователи/пароли.
У меня есть работающие машины, настроенные аналогично вашему "Server side" smb.conf, за исключением поля users. Надеюсь, это поможет.
решение2
Каждый раз, когда я настраиваю сервер Samba в Linux с разрешением на запись, я запускаю команду «smbpasswd 'username'», чтобы добавить пользователя в список пользователей Samba. Обратите внимание, что пользователь должен быть в системе в первую очередь.