Как показано выше в файле smb.conf, организация доступа к дискам Linux для пользователей Windows является довольно простым делом. Однако, с помощью Samba вы можете контролировать это в большой степени. Здесь мы приведем несколько примеров:
Чтобы организовать доступ для всех, создайте копию раздела [tmp], приведенного выше, добавив что-то подобное в smb.conf:
[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no
Вы сейчас будете иметь возможность запустить Samba и просмотреть доступные ресурсы с Windows PC. Однако, недавно Microsoft сделала жизнь немного более трудной для тех, кто использует Samba. Windows 98, Windows NT (service pack 3 или выше) и поздние версии Windows 95 теперь по умолчанию используют шифрованные пароли. А Samba по умолчанию использует нешифрованные пароли. Вы не сможете просматривать содержимое серверов когда либо клиент либо сервер используют шифрованные пароли, потому что соединение не может быть сделано без регистрации.
Если у вас есть несоответствие типов паролей между клиентом и сервером и когда вы пытаетесь подключится к ресурсу, то вы можете увидеть окно диалога в котором будет сказано примерно следующее: "You are not authorized to access that account from this machine".
Вы можете либо настроить Samba-сервер для использования шифрованных паролей, либо настроить машины с Windows, чтобы они использовали нешифрованные пароли.
Для того, чтобы заставить Windows работать с нешифрованными паролями SMB:
Windows 95/98
=============
Используя редактор registry (regedit), создайте ключ registry
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP
Добавьте значение типа DWORD:
Имя значения: EnablePlainTextPassword
Данные: 0x01.
Windows NT
==========
Используя редактор registry (regedit), создайте ключ registry
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters
Добавьте значение типа DWORD:
Имя значения: EnablePlainTextPassword
Значение: 0x01
Windows 2000
============
Using the registry editor (regedit), create the registry setting
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters
Add a new DWORD value:
Value Name: EnablePlainTextPassword
Data: 0x01
После того, как вы сделали эти изменения, перезагрузите машину с Windows и попытайтесь подключить сетевой диск к серверу Samba. Это должно работать, поскольку сервер Samba использует пароли в нешифрованном виде.
Для того, чтобы настроить Samba для использования шифрованных паролей:
В раздел [global] файла /etc/smb.conf, добавьте следующие строки:
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
Мы вам настоятельно рекомендуем прочитать файлы ENCRYPTION.txt, Win95.txt и WinNT.txt в документации по Samba до того как вы будете делать это!
Если ваши и клиенты и сервер используют шифрованные пароли, то вы не сможете просмотреть списки доступных ресурсов до тех пор пока начальное соединение не будет сделано с правильными параметрами входа. Для того чтобы сделать первоначальное соединение, введите вручную имя ресурса в диалоговом окне Windows File Manager или Explorer, имя должно быть в форме '\\<hostname>\<sharename>'. Подключитесь к серверу и правильными для данного сервера именем и паролем.
Если вы подозреваете, что ваш сервис имен NetBIOS неправильно настроен (возможно потому, что вы получаете сообщение об ошибке 'host not found (машина не найдена)' при попытке подключения), то попытайтесь использовать IP-адрес сервера: '\\<host ip address>\<sharename>'.
Для того, чтобы имена отображались правильно, вы может понадобиться установить некоторые настройки в соответствующем разделе ресурса. Это работает с клиентами под управлением 95/98/NT, но может быть необходимо будет изменить эти настройки, если вы используете клиентов с Windows 3.X:
; Mangle case = yes seems to give the correct filenames
; for Win95/98/NT.
mangle case = yes
; If samba is case sensitive when looking for files
case sensitive = no
; Default case of files that are created
default case = lower
; Preserve case for all filenames
preserve case = yes
; Preserve case for dos (8.3) filenames
short preserve case = no
Замечание: Значение после знака / это ссылка на сетевую маску. Для сети класса С этим значением будет "24". Для дополнительной информации о том как выполнять вычисления для подсетей, вы можете посмотреть информацию по адресу http://www.ralphb.net/IPSubnet/.
Конечно настройка Samba более полна, чем мы привели здесь, но это даст вам возможность начать работать. Если вы хотите сделать что-то более сложное, то я рекомендую вам сходить на сервер Samba, упомянутый выше.
Чтобы сделать эту директорию доступной для чтения всеми, но разрешить писать в нее только людям из группы staff, измените запись как показано в следующем примеру:
[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no
write list = @staff
Для описания других приемов для изменения доступа к дискам, смотрите документацию на Samba и справочные страницы.