Владелец файла и права доступа

Владелец файла и права доступа

Средства защиты Linux базируются на понятиях принадлежности файла определенному владельцу и правах доступа к нему, принятых в системе UNIX. Однако SMB/CIFS использует те же признаки несколько по-другому. Средства SMB/CIFS регистрируют пользователей, обратившихся к серверу, анализируя имена и пароли, таким образом, по умолчанию Samba использует для этой цели учетные записи Linux. Если пароли передаются в незашифрованном виде, Samba применяет стандартный механизм аутентификации Linux, а при работе с зашифрованными паролями сервер Samba самостоятельно идентифицирует пользователя. Samba позволяет проводить сеанс работы от имени различных пользователей. В частности, параметры force user и force group позволяют настроить Samba так, что все обращения к некоторому разделяемому объекту будут интерпретироваться так, как будто бы они поступают от другого пользователя или от пользователя, принадлежащего другой группе. Рассмотрим следующее описание разделяемого объекта:

[jekyl]

path = /home/samba/jekyl

read only = No

force user = hyde

Каждый пользователь, обратившийся к данному объекту, будет выполнять любые действия так, как будто их выполняет пользователь, которому в 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 обеспечивают полный контроль доступа к файлам, в частности, позволяют разрешить или запретить запись в файл.