Владелец файла и права доступа
Средства защиты Linux базируются на понятиях принадлежности файла определенному владельцу и правах доступа к нему, принятых в системе UNIX.
🕛 21.06.2009, 21:16
Однако 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 HA^fci 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 и тар hidden. Если вы хотите изменить параметр map system или тар hidden, вам надо изменить параметр create mask,
добавив единицу соответственно к предпоследней или последней цифре его значения.
В системах Windows NT/2000/XP используется более сложная модель защиты, чем в Windows 9х/Ме. В 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. владельца, группы и пользователя, поэтому для его поддержки необходимо соответствующим образом изменить значения параметра create mask или directory mask. ACL обеспечивают полный контроль доступа к файлам, в частности, позволяют разрешить или запретить запись в файл.