Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
• smb passwd file = /etc/samba/smbpasswd
Переменная smb passwd file задает путь и имя файла, содержащего пароли пользователей; поскольку принципы хранения пароля в Linux не позволяют его расшифровать, приходится создавать отдельный файл паролей для пользователей Samba.
• local master = yes
Переменная local master позволяет серверу Samba стать мастер-браузером.
• preferred master = yes
Переменная preferred master позволяет серверу Samba сразу же при запуске устроить перевыборы master с наибольшим шансом для себя.
• dns proxy = yes
Разрешает серверу сопоставлять NetBIOS-имена с IP-адресом при помощи DNS....Замечание
Протокол NetBIOS в принципе предназначен для одноранговой локальной сети, т. е. такой сети, где все компьютеры равноправны. Тем не менее, в NetBIOS предусмотрен специальный компьютер, называемый master, который ведет список компьютеров, подключенных к сети, их разделяемые ресурсы и вновь подключаемые компьютеры. Именно от master вновь подключающиеся компьютеры получают список компьютеров в сети и их доступные ресурсы.
• username map = /etc/samba/smbusers
Переменная username map позволяет задать файл пользователей Samba, в котором ставится в соответствие имя Linux-пользователя имени Samba-пользователя; обычно в качестве имени пользователя Samba используется имя Linux-пользователя.
• socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
Переменная socket options используется для тонкой настройки сетевых параметров, позволяющих несколько улучшить производительность сервера.
• interfaces = 192.168.10.0/24
Переменная interfaces указывает серверу, с какой сетевой картой (сетью) он имеет дело; используется в том случае, если на сервере установлено несколько сетевых карт из разных локальных сетей.
• name resolve order = wins lmhosts beast
Переменная name resolve order определяет порядок получения имен.
• wins support = yes
Переменная wins support указывает, что сервер Samba выступает в роли WINS-сервера.
• wins server = w.x.y.z
Переменная wins server определяет IP-адрес WINS-сервера; если установлено wins support = yes, то использование переменной wins server запрещено.
• default case = lower
Переменная default case определяет регистр имен файлов, создаваемых на ресурсах Samba.
• case sensitive = no
Переменная case sensitive определяет чувствительность к регистру символов.
• client code page =8 66
Переменная client code page задает кодовую страницу клиента; для DOS клиента – 866.
• character set = koi8-r
Переменная character set задает набор символов, используемых сервером.
• printer driver file=/home/samba/hplj1200/printers.def
Переменная printer driver file определяет имя драйвера принтера.
• time server = true
Эта переменная предписывает серверу показывать клиентам Windows, что он выступает для них в роли сервера точного времени.
Секция [homes]
Секция [homes] позволяет удаленным пользователям получить доступ к своим домашним каталогам на Linux-машине. Для этого пользователь должен быть зарегистрирован в Linux-системе. Рассмотрим переменные секции [homes].
• comment = Home Directories
Эта переменная – просто комментирует содержимое данной секции.
• browseable = по
Переменная запрещает просматривать каталог посторонним пользователям.
• writable = yes
Переменная разрешает записывать в домашний каталог.
• valid users = yura katya vova alst
Переменная valid users задает список пользователей, для которых разрешен доступ к своим домашним каталогам; в принципе параметр не обязательный.
Секция [comm]
Секция [comm] отвечает за каталог, доступный всем пользователям Samba. Это своего рода аналог FTP, куда могут записывать и откуда читать пользователи. Подробнее разберем эту секцию.
• comment = Common place
Эта переменная – просто комментирует содержимое данной секции.
• path = /home/samba/comm
Переменная определяет каталог, который используется для совместного доступа.
• valid users = root yura katya vova alst
Переменная содержит список пользователей, которым разрешен доступ к общему ресурсу.
• public = по
Запрещает остальным пользователям получать доступ к данному ресурсу.
• writable = yes
Разрешает запись в общий ресурс.
• printable = по
Указывает, что разделяемый ресурс не является печатающим устройством.
• create mask = 0775
Маска для создания файлов на разделяемом ресурсе.
• directory mask= 0775
Маска для создания каталогов на разделяемом ресурсе.
• force group = office
Переменная определяет, что файлу, создаваемому или копируемому на общий ресурс, принудительно задается принадлежность к группе office, для того чтобы любой пользователь мог изменить или удалить файл.
Секция [tmp]
Секция [tmp] предназначена для создания разделяемого ресурса, в который могли бы записывать все пользователи. Как видно из нижеприведенного описания, от секции [сошт] отличается отсутствием списка пользователей и значением переменной public.
comment = Temporary file space
path = /tmp
read only = no
public = yes
Пароли пользователей
Сервер Samba подразумевает использование нескольких типов безопасности. В частности переменная encrypt password определяет, какой механизм авторизации будет использован. Если переменной encrypt password присвоено значение по, то авторизация пользователей производится, исходя из учетных записей Linux, хранящихся в файлах /etc/passwd и /etc/shadow. При таком типе авторизации пользователя пароли передаются по сети в незашифрованном виде. Это несколько упрощает настройку, но резко снижает безопасность системы. В дополнение к этому, такой тип авторизации требует в Windows 95, Windows 98, Windows NT изменений в системном реестре. Ниже приведены изменения, которые необходимо внести в системный реестр.
• Windows 95
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]
"EnablePlainTextPassword"=dword:00000001
• Windows 98
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]
"EnablePlainTextPassword"=dword:00000001
• Windows NT
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParameters] "EnablePlainTextPassword"=dword:00000001
• Windows 2000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkStationParameters]
"EnablePlainTextPassword"=Data: 0x01
В том случае, если переменной encrypt password присвоено значение yes, авторизация пользователя происходит с использованием файла /etc/samba/ smbpasswd, и передача паролей происходит в зашифрованном виде.
Почему для использования шифрованных паролей необходимо создавать отдельную базу паролей пользователей Samba? Все дело в методе хранения пароля. Windows-системы хранят зашифрованный пароль, и при аутентификации пользователя производят сверку паролей. Linux не хранит пароль как таковой. В файле shadow хранится так называемый хэш пароля, а в последних версиях Linux – контрольная сумма пароля, рассчитанная по алгоритму MD5. И при аутентификации пользователя сравниваются хэши паролей. Особенность хэша – он необратим, т. е. зная хэш, невозможно по нему восстановить пароль. Поэтому приходится отдельно для Samba заводить базу паролей пользователей. Для администратора системы это представляет некоторое неудобство – еще один повод забыть прописать пользователя, а с другой стороны – за все надо платить.
Добавление пользователей Samba
Для добавления пользователей в файл /etc/samba/smbpasswd необходимо наличие самого файла /etc/samba/smbpasswd. Также должна существовать и учетная запись пользователя в Linux-системе. Если эти условия соблюдены, следует:
1. Воспользоваться программой smbpasswd для создания учетной записи
smbpasswd -a user_name
2. Активировать учетную запись
smbpasswd -e user_name
3. Эту операцию придется произвести с каждым пользователем. Существуют скрипты, позволяющие перебросить пользователей из файла passwd в файл smbpasswd. Но они только перебрасывают пользователей, а пароли для них все равно придется заводить вручную. Еще один недостаток этих скриптов – после них придется удалять пользователей типа nobody, root, news и т. п.
Для монтирования ресурсов, предоставляемых сервером Samba, используются команды smbclient и smbmount. Обо всех возможностях этих комавд можно узнать из соответствующих man-страниц, краткие сведения о команде smbclient вы получите в этой главе.
Принтеры
Принтер, установленный в системе с сервером Samba, предоставить в общее пользование Samba-клиентам очень просто. Все принтеры, которые определены в файле /etc/printcap, становятся доступными после того, как вы добавите следующую секцию в конфигурационный файл smb.conf:
[printers]
path = /var/spool/lpd
writeable = no
guest ok = no
printable = yes
Использование ресурсов Samba
Хотя сервер Samba позиционируется как средство доступа Windows-клиентов к ресурсам Linux-систем, тем не менее, в пакете есть средства для того, чтобы Linux-компьютеры могли также просматривать и монтировать SMB-ресурсы. И что особенно приятно, доступ к ресурсам Windows-сети можно получить и в том случае, когда сервером является машина с Windows!
Программа клиента SMB для Linux включена в дистрибутив Samba и называется smbclient. Она обеспечивает FTP-подобный интерфейс командной строки. Также существует пакет smbfs, который позволяет монтировать и размонтировать SMB-ресурсы.
Для того чтобы увидеть доступные SMB-ресурсы, выполните команду:
/usr/bin/smbclient -L host
где host – это имя машины, ресурсы которой вас интересуют. Эта команда вернет список имен доступных сервисов.
Пример команды smbclient: