Каждый раздел в файле конфигурации (за исключением секции [global]) описывает общий ресурс (известный как «share»). Название раздела — это имя общего ресурса и параметры в разделе определяют свойства общего ресурса.
 
Есть три специальных раздела, [global], [homes] and [printers], которые описаны под специальными разделами. Следующие примечания относятся к обычным описаниям секции.
 
Общий ресурс состоит из директории, к которой дается доступ плюс описание прав доступа, которое предоставляется пользователю сервисом. Некоторые вспомогательные опции также специфичны.
 
Разделы — это или общие файловые ресурсы (используемые клиентом как расширение их родных файловых систем) или сервисы печати (используемые клиентом для доступа к сервису печати на сервере печати).
 
Разделам может быть назначен гостевой доступ, в этом случае не требуется пароль для доступа к ним. Специальная UNIX гостевая учетная запись используется для определения привилегий доступа в этом случае.
 
Разделы, отличные от гостевого сервиса требуют пароль для доступа к ним. Клиент предоставляет имя пользователя. Для старых клиентов предоставляющих пароли без имен пользователей, вы можете задать список имен пользователей для проверки паролей используя параметр user = option в настройках общего ресурса. Для современных клиентов, таких, как Windows 95/98/ME/NT/2000, этого не требуется.
 
Права доступа, предоставленные сервером замаскированы правами доступа, предоставленными указанному или гостевому UNIX пользователю системы. Сервер не предоставит доступа больше чем UNIX система.
 
Следующий типовой раздел определяет файловый общий ресурс. Пользователь имеет доступ на запись в папку /home/bar. Общий ресурс доступен через имя общего ресурса foo:
 
path = /home/bar
read only = no
 
Следующий типовой раздел определяет общий ресурс печати. Общий ресурс только для чтения но с возможностью печати. Таким образом доступ на запись через запросы вида открыть, записать и закрыть печатаемый файл. guest ok разрешает печать гостевому пользователю (определенному в другом месте):
 
[aprinter]
path = /usr/spool/public
read only = yes
printable = yes
guest ok = yes
 
 
СПЕЦИАЛЬНЫЕ РАЗДЕЛЫ
 
Раздел [global]
 
Параметры этого раздела применяются к серверу целиком или являются умолчаниями для разделов если они специально не определены. Более подробно смотри примечания под разделом PARAMETERS.
 
Раздел [homes]
 
Если раздел названый [homes] включен в конфигурационный файл, сервисы подключающие клиентов к их домашним директориям могут быть созданы сервером на лету.
 
Когда запрос на соединение сделан, сканируется существующая секция. Если соответствие обнаружено, оно используется. Если соответствия нет, то название секции трактуется как имя пользователя и происходит обращение к локальному файлу паролей. Если имя существует и пароль корректен, общий ресурс создастся клонируя [home] секцию.
 
Некоторые изменения сделаны к недавно созданному ресурсу. Имя общего ресурса изменяется с homes на выбранного username. Если ни один путь не удался, путь определяется как домашняя директория
пользователя. Если вы решите использовать path = line в вашем [homes] разделе, может быть полезно использовать %S макрос.
 
Например: path = /data/pchome/%S может быть полезно если вы имеете различные домашние директории для вашего ПК по сравнению с UNIX доступом.
 
Это быстрый и простой способ для большого количества клиентов получить доступ к своим домашним каталогам с минимумом суматохи.
 
Аналогичный процесс происходит, если запрашиваемое название раздела «homes», за исключением того, что имя общего ресурса не изменилось, что и запрашивающего пользователя. Это метод использования [homes] раздела работает хорошо, если разные пользователи используют общий ресурс клиентского ПК.
 
[homes] раздел может определить все параметры, которые может определить нормальный раздел, хотя некоторые имеют больше смысла чем другие. Следующая из типичных ситуаций раздела [homes]:
 
[homes]
read only = no
 
Важный пункт, если доступ гостя определен в разделе [homes], все домашние каталоги будут видимы всем клиентам без пароля. В очень редких случаях, когда это действительно целесообразно, можно указать доступом только для чтения.
 
Флаг видимости для авто домашних директорий будет унаследован от глобального флага видимости, не от [homes] флага видимости. Это полезно как средство установки browseable = no в разделе [homes] будет скрывать [homes] общий ресурс, но сделает любые авто home каталоги видимыми.
 
Раздел [printers]
 
Этот раздел работает как [homes], но для принтеров. Если [printers] раздел есть в конфигурационном файле, пользователи имеют возможность подключиться к любому принтеру из local host’s printcap файла.
 
Когда запрос на соединение сделан, сканируется существующая секция. Если соответствие обнаружено, оно используется. Если соответствия нет, но раздел [home] существует он используется как описано выше. В противном случае предложеное название раздела трактуется как имя принтера и соответствующие printcap файл сканируется, чтобы, если предложеное название раздела — это действительное имя общего ресурса принтера. Если соответствие обнаружено, общий ресурс принтера создастся клонируя [printers] секцию.
 
На вновь созданном ресурсе произойдут следующие изменения:
  • Имя общего ресурса установится к имени принтера
  • Если имя принтера не указано, то оно установится в имя определивщегося принтера
  • Если общий ресурс не позволяет гостевой доступ и не указано имя пользователя, то имя пользователя установится в имя принтера
 
Сервис [printers] ДОЛЖНО быть пригодным для печати — если Вы определите иначе, то сервер откажется загрузить файл конфигурации.
 
Типично определенный путь — это доступная всем на запись принтерная директория с установленным sticky bit. Стандартная настройка [printers] похожа на это:
 
[printers]
path = /usr/spool/public
guest ok = yes
printable = yes
 
Все псевдонимы для принтера приводятся в файле printcap. Если ваша подсистема печати не работает, возможно, вам придется создать pseudo-printcap. Это файл, состоящий из одной или более строк так :
 
alias|alias|alias|alias…
 
Каждый псевдоним должен быть приемлемым именем принтера для вашей подсистемы печати. В разделе [global] укажите новый фаил как ваш printcap. Сервер признает только названия, найденные в вашем pseudo-printcap, который конечно может содержать любые псевдонимы, которые Вы любите. Та же самая техника может использоваться просто, чтобы ограничить доступ к подмножеству ваших локальных принтеров.
 
Он же, кстати, определяется как компонент первой строки printcap записи. Записи разделяются новой строкой, компоненты (если есть больше чем один) отделены вертикальными символами (|).
 
В SYSV системах, использующих lpstat для определения того какие принтеры присутствуют в системе вы можете использовать printcap name = lpstat для получения списка принтеров автоматически. Более подробно смотрите опцию printcap.
 
 
USERSHARES
 
Начиная с версии 3.0.23 добавлена возможность для не root пользователей добавлять, изменять и удалять собственные общие ресурсы. Эта возможность называется usershares и настраивается установкой параметров в разделе [global] файла smb.conf. Соответствующие параметры:
 
usershare allow guests — Разрешен гостевой доступ.
usershare max shares — Максимальное количество пользовательских общих ресурсов.
usershare owner only — Если установлено, то только хозяин директории общего ресурса может создавать общий ресурс.
usershare path — Директория, содержащая пользовательские общие ресурсы. Разрешения файловой системы для этой директории контролируют того, кто может создать пользовательские общие ресурсы.
usershare prefix allow list — Список имен путей, отделенных запятой, определяющий какие директории могут быть shared. Только каталоги ниже этих путей в этом списке разрешаются.
usershare prefix deny list — Список имен путей, отделенных запятой, определяющий какие директории могут быть shared. Каталоги ниже пути в этом списке запрещены.
usershare template share — Имена существующущих share используются в качестве образца для создания новых usershares. Все другие параметры share, не указанные в настройках пользовательского общего ресурса копируются из этого имени share.
 
Для разрешения членам Unix группы foo создавать пользовательские общие ресурсы, создайте директорию, содержащую настройки share:
 
С правами root:
mkdir /usr/local/samba/lib/usershares chgrp
foo /usr/local/samba/lib/usershares chmod
1770 /usr/local/samba/lib/usershares
 
Затем добавьте параметры:
usershare path = /usr/local/samba/lib/usershares
usershare max shares = 10 # (or the desired number of shares)
 
в раздел global вашего smb.conf. Члены группы foo могут изменять пользовательские общие ресурсы используя следующие команды:
 
net usershare add sharename path [comment] [acl] [guest_ok=[y|n]]
Для создания или измениения пользовательского общего ресурса.
 
net usershare delete sharename
Для удаления пользовательского общего ресурса.
 
net usershare list wildcard-sharename
Для просмотра пользовательских общих ресурсов.
 
net usershare info wildcard-sharename
Для печати информации о пользовательских общих ресурсах.
 
 
PARAMETERS
 
Параметры специфичные для разделов.
 
Некоторые параметры специфичны для раздела [global]. Некоторые параметры используются во всех разделах. Все другие разрешены только в нормальных разделах. Разделы [homes] и [printers] считаются нормальными. Символ G в скобках говорит что параметр указан для раздела [global]. Символ S говорит что параметр указан для сервисного раздела. Все S параметры могут также указываться в разделе [global] — в этом случае они будут определяться по-умолчанию для всех сервисов.
 
Параметры отсортированы по-алфавиту — это может не лучщее решение, но по крайней мере так их можно найти. Там где есть синонимы предпочтительный синоним описан, другие обращаются к этому синониму.