обратиться к нему, непосредственно указав имя объекта в строке Address броузера.) По умолчанию Samba создает разделяемые объекты, предназначенные только для чтения; клиенты не могут записывать в них данные. Чтобы объект допускал как чтение, так и запись, необходимо включить в состав описания параметр read only = No
либо один из его синонимов: writeable = Yes
или write ok = Yes
. Информация о владельце и правах доступа к файлам, входящим в состав разделяемого объекта, остается такой же, как и в системе Linux. При необходимости Samba позволяет переопределить владельца и права (действия, необходимые для этого, описаны ниже в данной главе).
Во многих сетях серверы Samba применяются для предоставления пользователям дополнительного дискового пространства, которое необходимо им для хранения документов. Для того чтобы упростить обслуживание пользователей, в системе Samba действует специальное соглашение, связанное с использованием разделяемого объекта [homes]
. Если вы опишете в конфигурационном файле объект [homes]
, Samba будет интерпретировать его следующим образом.
• Задавать параметр path
нет необходимости. Samba использует рабочий каталог пользователя, обратившегося к разделяемому объекту.
• В списке просмотра разделяемый объект отображается под именем, совпадающим с именем пользователя (например, объект rodsmith
, представленный на рис. 7.2). Если вы зададите параметр browseable = No
, объект [homes]
не будет отображаться в списке просмотра, но будет доступен под именем пользователя.
Во многих дистрибутивных пакетах разделяемый объект [homes]
изначально присутствует в файле smb.conf
. Поэтому, даже если вы не объявите новые разделяемые
объекты, конфигурация, установленная по умолчанию, позволит вам использовать сервер Samba для решения многих практических задач. (Имя рабочей группы вам придется задать самостоятельно и, вероятнее всего, вам необходимо будет определить политику шифрования паролей.)
Настраивая сервер Samba, вы можете описывать как угодно много разделяемых объектов, но очевидно, что определять несколько объектов [homes]
не имеет смысла. Кроме того, если вы обнаружите, что некоторый параметр присутствует в описаниях всех разделяемых объектов, целесообразно перенести его в раздел [global]
. Если вы сделаете это, значение параметра будет использоваться по умолчанию для всех объектов.
Поддержка имен файлов Windows
В системах Linux и Windows действуют разные соглашения по именованию файлов. Если в вашей сети, кроме Windows, присутствуют также клиенты DOS, то при настройке Samba следует учесть, что правила именования DOS-файлов отличаются от правил, принятых не только в Windows. Таким образом, при работе в сети с компьютерами Windows и DOS сервер Samba должен решить сложную задачу: представить файловую систему Linux в формате, совместимом с файловыми системами DOS и Windows.
Одно из самых важных отличий файловой системы Linux от системы Windows состоит в том, что имена файлов Linux чувствительны к регистру символов, т.е. имена FILE.TXT
, file.txt
и File.txt
идентифицируют различные файлы; при помещении их в один каталог конфликт не возникает. Это также означает, что при вводе имени файла пользователь должен следить за тем, чтобы были заданы символы требуемого регистра. В отличие от Linux, Windows хранит сведения о регистре, но не учитывает их при сравнении имен файлов, поэтому два файла с именами, отличающимися только регистром символов, не могут существовать в одном и том же каталоге. Файловая система DOS нечувствительна к регистру символов; если даже пользователь задал имя файла буквами нижнего регистра, система преобразует их в прописные буквы.
Параметр case sensitive
, помещаемый в конфигурационный файл, определяет, должен ли сервер Samba учитывать регистр символов в именах файлов. По умолчанию принимается значение No данного параметра, что позволяет серверу Samba работать с клиентами Windows и DOS. Если клиент запросит некоторый файл, Samba проверит все файлы, отличающиеся от указанного только регистром символов, т.е. будет имитировать поведение Windows. Недостаток подобного подхода состоит в том, что производительность системы несколько снижается. Если вы хотите добиться максимальной производительности, вам надо задать параметр sensitive = Yes
, но при этом некоторые из программ Windows будут работать с ошибками. Эти ошибки, конечно же, связаны с особенностями взаимодействия с сервером Samba. Параметр sensitive = Yes
целесообразно использовать при работе с клиентами, которые выполняются в тех операционных системах, в которых, подобно Linux, в именах файлов и каталогов учитывается регистр символов.
Параметры preserve case
и short preserve case
определяют, должен ли сервер Samba сохранять информацию о регистре символов в именах файлов. Если установлено значение Yes
, Samba сохраняет имена файлов именно в том виде, в котором их задают клиенты. При установленном значении No
Samba будет преобразовывать буквы в именах файлов к верхнему или нижнему регистру. Конкретный регистр зависит от параметра default case
. По умолчанию для этого параметра установлено значение Lower
, но при необходимости вы можете задать значение Upper
. Параметр preserve case воздействует на все файлы, но для коротких имен более высокий приоритет имеет параметр short preserve case
. (Короткими именами называются имена, составленные по соглашениям DOS, т.е. содержащие до 8 символов в имени файла и до 3 символов в расширении; такие имена принято также называть именами 8.3.) Если в вашей сети содержится большое количество DOS-клиентов, следует задать параметр short preserve case = No
. В результате в системе Linux имена файлов будут составляться из символов нижнего регистра, но DOS-клиентам эти же имена будут доступны преобразованными к верхнему регистру.
Средства SMB/CIFS обеспечивают доставку имен 8.3 даже в том случае, если исходные имена содержат большее количество символов. Это позволяет организовывать доступ к файлам с длинными именами для клиентов, работающих в DOS или 16-битовой системе Windows. Поскольку в Linux длина имени файла не ограничена, сервер Samba должен динамически генерировать имена 8.3. Параметр mangled names = Yes
(значение по умолчанию) разрешает поддержку имен 8.3; если же вы укажете mangled names = No
, создание таких имен будет запрещено.
Владелец файла и права доступа
Средства защиты 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
Каждый пользователь, обратившийся к данному объекту, будет выполнять любые действия так, как