Каждый пользователь, обратившийся к данному объекту, будет выполнять любые действия так, как будто их выполняет пользователь, которому в Linux соответствует учетная запись
hyde
. Если к разделяемому объекту обратится пользователь
muriel
и создаст в нем файл, владельцем этого файла будет
hyde
. To же самое произойдет, если файл создаст пользователь
henry
. Любой пользователь, работающий с данным объектом посредством Samba, может читать файлы, расположенные в соответствующем каталоге, даже если ему запрещено делать это при обычной регистрации в системе Linux. Доступ предоставляется даже тем пользователям, которым в системе Linux запрещено просматривать
содержимое каталога
/home/samba/jekyl
. Пользователи работают с файлами в составе разделяемого объекта так, как будто это делает пользователь
hyde
. Подобным образом действует параметр
force group
, но он учитывает не владельца файла, а принадлежность файла группе.
На заметку
Обращаясь к разделяемому объекту, для которого указан параметр
force user
, пользователь указывает собственный пароль.
Параметры
force user
и
force group
существенно упрощают ряд действий по настройке Samba. Предположим, например, что вы хотите создать разделяемый объект, в пределах которого пользователи смогут свободно обмениваться документами. Для этого вам достаточно задать параметр force user; в результате все файлы, созданные в соответствующем каталоге, будут принадлежать одному владельцу, и их сможет прочитать любой пользователь, который получит доступ к данному объекту. Специально для этой цели вы можете создать отдельную учетную запись. О том, как ограничить круг пользователей, имеющих право обращаться к разделяемому объекту, рассказывается далее в этой главе.
Несмотря на то что и Linux, и SMB/CIFS поддерживают пользовательские имена, механизмы обеспечения доступа, используемые ими, не совпадают. Если Samba применяется для взаимодействия с клиентами DOS и Windows 9x/Me, клиент вовсе не использует сведения о правах доступа. Поэтому вы можете устанавливать для файлов, созданных этими клиентами, любые права. Сделать это можно с помощью параметров
create mask
и
directory mask
, которые позволяют задавать права доступа к файлам и каталогам. В качестве значения каждого из параметров задается трех- или четырехзначное восьмеричное число; оно представляет признаки доступа, которые могут быть установлены для файла, создаваемого средствами Samba. По умолчанию для параметра
create mask
принимается значение 0744, а для параметра
directory mask
— значение 0755. Оба значения разрешают владельцу файла чтение и запись, а членам группы и всем остальным пользователям — только чтение. Вы можете задавать значения данных параметров по-своему, но при этом необходимо учитывать, что биты прав доступа используются для представления признаков DOS, определяющих скрытые, системные файлы и файлы архивов.
В системах DOS и Windows используются три атрибута файлов, которые не поддерживаются в файловой системе Linux. Samba отображает эти атрибуты в биты, определяющие права запуска файлов на выполнение. В Samba предусмотрены параметры, позволяющие управлять отображением атрибутов файлов в права доступа. Эти параметры перечислены ниже.
•
map archive
. Если для данного параметра установлено значение
Yes
(значение по умолчанию), признак файла архива DOS отображается в бит, определяющий права владельца на выполнение файла. Клиенты DOS и Windows устанавливают этот признак при создании нового файла и сбрасывают его, если с помощью специальных программ создается резервная копия данного файла. По этой причине файлы, созданные по инициативе клиентов Samba, выглядят как исполняемые. Данный эффект наблюдается только в том случае, когда используется значение параметра
create mask
, принятое по умолчанию.
•
map system
. Если для данного параметра установлено значение
Yes
, признак системного файла DOS отображается в бит, определяющий права группы на выполнение файла. По умолчанию используется значение
No
, т.е. отображение не осуществляется. В DOS и Windows этим признаком помечаются файлы специального назначения. Вероятность того, что такие файлы будут сохранены на сервере Samba, очень мала.
•
map hidden
. Если для данного параметра установлено значение
Yes
, признак скрытого файла DOS отображается в бит, определяющий права любого пользователя системы Linux на выполнение файла. По умолчанию принимается значение
No
. В системах DOS и Windows файлы, для которых установлен данный признак, остаются доступными, но они не отображаются при выводе содержимого каталогов и отсутствуют в диалоговых окнах, предназначенных для выбора файлов.
На заметку
По умолчанию Samba
устанавливает признак скрытого файла для файлов Linux, имена которых начинаются с точки. Linux интерпретирует подобные файлы приблизительно так же, как DOS — скрытые файлы. Если такое поведение системы вас не устраивает, вы можете изменить настройку, задав параметр
hide dot files = No
.
Значение параметра
create mask
, используемое по умолчанию, отражает значения параметров
map archive
,
map system
и
map hidden
. Если вы хотите изменить параметр
map system
или
map hidden
, вам надо изменить параметр
create mask
, добавив единицу соответственно к предпоследней или последней цифре его значения.
В системах Windows NT/2000/XP используется более сложная модель защиты, чем в Windows 9x/Me. В Windows NT/2000/XP поддерживаются ACL (Access Control Lists — списки контроля доступа), которые позволяют непосредственно определить уровень доступа конкретного пользователя к файлу. Samba поддерживает отображение прав доступа для владельца, группы и всех пользователей Linux в Windows ACL. Это позволяет хранить на сервере Samba информацию о правах, установленных в системе Windows NT/2000/XP. Поддержка ACL задается с помощью параметра
nt acl support
; по умолчанию принимается значение
Yes
. Если вы не хотите поддерживать соответствие между правами в Windows NT/2000/XP и Linux, задайте для данного параметра значение
No
.
На заметку
В файловых системах DOS и Windows 9x/Me существует признак, который разрешает или запрещает запись в файл. Этот признак воздействует на права владельца, группы и пользователя, поэтому для его поддержки необходимо соответствующим образом изменить значения параметра
create mask
или
directory mask
. ACL обеспечивают полный контроль доступа к файлам, в частности, позволяют разрешить или запретить запись в файл.
Ограничение доступа к разделяемым объектам
Samba использует различные средства контроля доступа к серверу. В качестве примера можно привести уже упоминавшиеся параметры
hosts allow
и
hosts deny
и, конечно же, модель аутентификации, согласно которой пользователь должен указывать имя и пароль. Samba также предоставляет средства контроля доступа к отдельным разделяемым объектам. Наиболее важными средствами управления доступом являются параметры
valid users
и
invalid users
. В качестве значений этих параметров задаются списки пользователей, которым соответственно разрешено или запрещено обращаться к разделяемому объекту. Если вы используете параметр
valid users
, задайте перечень имен пользователей, разделенных пробелами. Эти пользователи получат право доступа к объекту, а для остальных доступ будет запрещен. Аналогично, параметр
invalid users
используется для создания "черного списка". Даже если пользователи, указанные в нем, имеют право обращаться ко всем остальным объектам, доступ к данному объекту для них будет закрыт.
Помимо
valid users
и
invalid users
, для контроля доступа могут также быть использованы параметры
write list
и
read list
. Эти параметры позволяют переопределять для отдельных пользователей установки, разрешающие чтение и запись или только чтение. Предположим, что вы создали разделяемый объект и поместили в него программные файлы. Очевидно, что подавляющее большинство пользователей не должны вносить изменения в содержимое этого объекта, поэтому данный разделяемый объект целесообразно определить как предназначенный только для чтения. Однако некоторые пользователи будут заниматься обновлением программ, поэтому им надо предоставить право записи. Этих пользователей можно определить с помощью параметра
write list
.
В качестве примера применения описанных выше параметров рассмотрим следующий фрагмент конфигурационного файла:
[control]
path = /home/samba/control
read only = Yes
invalid users = thomas susan
write list = gertrude henry
Для большинства пользователей данный объект допускает только чтение. Двум пользователям (
thomas
и
susan
) доступ к объекту полностью запрещен, а пользователи
gertrude
и
henry
имеют право не только читать данные, но и записывать их.