Управление доступом
Для управления доступом к папкам в пространстве имен с помощью утилиты samba-tool используется группа подкоманд dfsn access.
| См. описание последовательности настройки пространства имен в разделе «Настройка DFSN». |
Общие сведения
Управление доступом в пространстве имен основано на двухуровневой модели безопасности, которая разделяет управление видимостью элементов пространства имен и фактический контроль доступа к файловым ресурсам.
Разрешения на уровне папок используются для контроля их видимости в рамках пространства имен и не влияют на фактический доступ к содержащимся в папках целевым папкам и файлам в них. Они определяют, будут ли папка видна пользователю, если в пространстве имен включен механизм отображения на основе разрешений (Access-Based Enumeration): если механизм включен, пользователи видят только те папки в пространстве имен, на доступ к которым у них есть явные разрешения.
Фактический контроль доступа к файловым ресурсам осуществляется на уровне файловых серверов, на которых размещаются целевые папки. При доступе учитывается комбинация разрешений на уровне файловой системы и разрешений общих папок, установленных на конкретном целевом объекте, к которому клиент пытается получить доступ. Это означает, что даже если пользователь может видеть папку в пространстве имен, его реальные возможности по работе с файлами (чтение, изменение, удаление) определяются разрешениями, настроенными на сервере, где физически расположены данные.
При этом видимость папки в списке пространства имен дополнительно регулируется флагом SEC_DESC_DACL_PROTECTED. Если он установлен в Yes, папка видна только администраторам и пользователям, которым явно выдано разрешение. Если установлен в No, папка становится видимой также для всех остальных пользователей, даже если они не включены в список разрешений — при этом их доступ к содержимому папки по-прежнему ограничивается правами на целевом файловом сервере. Этот параметр влияет исключительно на отображение папки в списке, а не на фактический доступ к файлам.
Выдача разрешений, определяющих видимость папки
Формат вызова:
samba-tool dfsn access grant <dfs_path> <account_names> [options]
В качестве обязательных аргументов ожидаются:
-
путь к папке в пространстве имен в формате UNC-имени (например, \\elles.inno.tech\namespace1\documents);
-
одно или несколько (через запятую без пробелов) имен учетных записей пользователей и групп в формате
sAMAccountNameс доменом (например, ELLES\User1,ELLES\Group1) или без домена (например, User1,Group1).
Подкоманда выдает указанным пользователям и группам разрешения на просмотр папки в списке папок пространства имен. При этом:
-
скрытие папки происходит только при условии, что для пространства имен, в котором находится папка, установлен флаг
--enable-access-based-enumeration=Yes; -
не ограничивает права доступа пользователя в случае, если он подключился к папке пространства имен по ссылке с указанием папки (то есть подкоманда только скрывает папку в списке).
Дополнительно видимость может быть ограничена с помощью дополнительного параметра --sec-desc-dacl-protected, управляющего состоянием флага SEC_DESC_DACL_PROTECTED:
-
если при вызове подкоманды параметр
--sec-desc-dacl-protectedне указывается или в нем передается значениеYes, папка будет видимой:-
для администраторов;
-
пользователей, которые были явно включены в список разрешений на доступ к папке (тип доступа —
enumerate);
-
-
если при вызове подкоманды в параметре
--sec-desc-dacl-protectedпередается значениеNo, папка будет видимой:-
для администраторов;
-
пользователей, которые были явно включены в список разрешений на доступ к папке (тип доступа —
enumerate); -
всех остальных пользователей, даже если они не включены в список разрешений.
-
Параметры
Параметры вызова:
-
--server=DFSSERVERHOST— имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация;Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется. -
--sec-desc-dacl-protected— управляет видимостью папки в списке пространства имен (состояние флагаSEC_DESC_DACL_PROTECTED).Возможные значения:
-
Yes(по умолчанию) — папка видна только администраторам и пользователям с явным разрешением (тип доступа —enumerate); -
No— папка видна также всем остальным пользователям, даже если они не включены в список разрешений.Параметр не влияет на реальный доступ к файлам — только на отображение папки в списке папок в пространстве имен.
-
Примеры
Пример выдачи пользователю и группе разрешений, определяющих видимость папки в пространстве имен, с использованием значения флага --sec-desc-dacl-protected по умолчанию (--sec-desc-dacl-protected=Yes):
samba-tool dfsn access grant "\\\\elles.inno.tech\\namespace1\\documents" \
"ELLES\\User1","ELLES\\Group1"
...
SEC_DESC_DACL_PROTECTED = YES (The folder is visible to granted users and administrators)
Account name Access type
============ ===========
ELLES\User1 enumerate
ELLES\Group1 enumerate
Пример выдачи пользователю и группе разрешений, определяющих видимость папки в пространстве имен, с указанием флага --sec-desc-dacl-protected=No:
samba-tool dfsn access grant "\\\\elles.inno.tech\\namespace1\\documents" \
"ELLES\\User1","ELLES\\Group1" \
--sec-desc-dacl-protected=No
...
SEC_DESC_DACL_PROTECTED = NO (The folder is visible to granted users, administrators and absent in list users)
Account name Access type
============ ===========
ELLES\User1 enumerate
ELLES\Group1 enumerate
Получение информации о разрешениях, определяющих видимость папки
Формат вызова:
samba-tool dfsn access get <dfs_path> [options]
В качестве обязательного аргумента ожидается путь к папке в пространстве имен в формате UNC-имени (например, \\elles.inno.tech\namespace1\documents).
Подкоманда возвращает список учетных записей пользователей и групп с указанием наличия (тип доступа — enumerate) или отсутствия (тип доступа — none) у них разрешений, определяющих видимость папки в пространстве имен.
Также в выводе отображается текущее значение флага SEC_DESC_DACL_PROTECTED, определяющего, видима ли папка для пользователей, не включенных в список разрешений:
-
если
Yes— папка видна только администраторам и пользователям с явным разрешением; -
если
No— папка видна также всем остальным пользователям, даже если они не включены в список разрешений.
Этот флаг влияет только на интерпретацию видимости, но не изменяет состав списка разрешений в ACL.
Подкоманда не изменяет права — только показывает текущую конфигурацию ACL и состояние флага SEC_DESC_DACL_PROTECTED.
Параметры
Параметры вызова:
-
--server=DFSSERVERHOST— имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация.Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется.
Примеры
Пример получения информации о видимости папки:
samba-tool dfsn access get "\\\\elles.inno.tech\\namespace1\\documents" ... SEC_DESC_DACL_PROTECTED = YES (The folder is visible to granted users and administrators) Account name Access type ============ =========== ELLES\User1 enumerate ELLES\Group1 enumerate ELLES\User2 none
Отзыв разрешений, определяющих видимость папки
Формат вызова:
samba-tool dfsn access revoke <dfs_path> <account_names> [options]
В качестве обязательных аргументов ожидаются:
-
путь к папке в пространстве имен в формате UNC-имени (например, \\elles.inno.tech\namespace1\documents);
-
одно или несколько (через запятую без пробелов) имен учетных записей пользователей и групп в формате
sAMAccountNameс доменом (например, ELLES\User1,ELLES\Group1) или без домена (например, User1,Group1).
Подкоманда отзывает у указанных пользователей и групп разрешения на просмотр папки в пространстве имен (тип доступа — none). При этом:
-
скрытие папки происходит только при условии, что для пространства имен, в котором находится папка, установлен флаг
--enable-access-based-enumeration=Yes; -
не ограничивает права доступа пользователя в случае, если он подключился к папке пространства имен по ссылке с указанием папки (то есть подкоманда только скрывает папку в списке).
Команда переводит в состояние ACCESS_DENIED записи из ACL, соответствующие указанным учетным записям.
По умолчанию (--sec-desc-dacl-protected=No) флаг SEC_DESC_DACL_PROTECTED сбрасывается — папка становится видимой для всех пользователей, включая тех, кто не указан в ACL. При явном указании --sec-desc-dacl-protected=Yes флаг устанавливается — папка видима только администраторам и пользователям с явным разрешением (enumerate).
Эта операция не влияет на фактический доступ к файлам — он определяется правами на целевом файловом сервере.
В результате выполнения выводится обновленный список разрешений и текущее состояние флага SEC_DESC_DACL_PROTECTED.
Параметры
Параметры вызова:
-
--server=DFSSERVERHOST— имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация;Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется. -
--sec-desc-dacl-protected— управляет видимостью папки в списке пространства имен (состояние флагаSEC_DESC_DACL_PROTECTED).Возможные значения:
-
Yes— папка видна только администраторам и пользователям с явным разрешением (тип доступа —enumerate); -
No(по умолчанию) — папка видна также всем остальным пользователям, даже если они не включены в список разрешений.Параметр не влияет на реальный доступ к файлам — только на отображение папки в списке папок в пространстве имен.
-
Примеры
Пример отзыва разрешений, определяющих видимости папки в пространстве имен, у пользователя и группы:
samba-tool dfsn access revoke "\\\\elles.inno.tech\\namespace1\\documents" \
"ELLES\\User1","ELLES\\Group1"
...
SEC_DESC_DACL_PROTECTED = NO (The folder is visible to granted users, administrators and absent in list users)
Account name Access type
============ ===========
ELLES\User1 none
ELLES\Group1 none
Пример отзыва разрешений, определяющих видимости папки в пространстве имен, у пользователя с принудительной установкой флага SEC_DESC_DACL_PROTECTED:
samba-tool dfsn access revoke "\\\\elles.inno.tech\\namespace1\\documents" \
"ELLES\\User1" \
--sec-desc-dacl-protected=yes
...
SEC_DESC_DACL_PROTECTED = YES (The folder is visible to granted users and administrators)
Account name Access type
============ ===========
ELLES\User1 none
ELLES\Group1 enumerate
Удаление пользователей и групп из списка управления доступом (ACL) для папки
Формат вызова:
samba-tool dfsn access remove <dfs_path> <account_names> [options]
В качестве обязательных аргументов ожидаются:
-
путь к папке в пространстве имен в формате UNC-имени (например, \\elles.inno.tech\namespace1\documents);
-
одно или несколько (через запятую без пробелов) имен учетных записей пользователей и групп в формате
sAMAccountNameс доменом (например, ELLES\User1,ELLES\Group1) или без домена (например, User1,Group1).
Подкоманда удаляет пользователя или группу из списка управления доступом (ACL) папки в пространстве имен.
Удаление из ACL означает, что указанные пользователи или группы больше не имеют явного разрешения на просмотр папки в списке пространства имен. Их видимость теперь зависит только от флага SEC_DESC_DACL_PROTECTED:
-
если
Yes— папка видна только администраторам и тем, кто остался в ACL; -
если
No— папка видна всем (включая удаленных).
Таким образом, удаление из ACL не гарантирует скрытие папки — только удаление записи из списка разрешений.
В результате выполнения операции выводится обновленный список разрешений и текущее состояние флага.
Подкоманда влияет только на структуру ACL, а не на фактический доступ к файлам — он определяется правами на целевом сервере.
Параметры
Параметры вызова:
-
--server=DFSSERVERHOST— имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация;Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется. -
--sec-desc-dacl-protected— управляет видимостью папки в списке пространства имен (состояние флагаSEC_DESC_DACL_PROTECTED).Возможные значения:
-
Yes— папка видна только администраторам и пользователям с явным разрешением (тип доступа —enumerate); -
No(по умолчанию) — папка видна также всем остальным пользователям, даже если они не включены в список разрешений.Параметр не влияет на реальный доступ к файлам — только на отображение папки в списке папок в пространстве имен.
-
Примеры
Пример удаления пользователя из ACL папки:
samba-tool dfsn access remove "\\\\elles.inno.tech\\namespace1\\documents" \
"ELLES\\User2"
...
SEC_DESC_DACL_PROTECTED = NO (The folder is visible to granted users, administrators and absent in list users)
Account name Access type
============ ===========
ELLES\User1 enumerate
ELLES\Group1 enumerate
Пример удаления нескольких пользователей и групп из ACL папки:
samba-tool dfsn access remove "\\\\elles.inno.tech\\namespace1\\documents" \
"ELLES\\User1,ELLES\\Group1"
...
SEC_DESC_DACL_PROTECTED = NO (The folder is visible to granted users, administrators and absent in list users)
Account name Access type
============ ===========
ELLES\User3 enumerate
Пример удаления пользователя из ACL папки с принудительной установкой флага SEC_DESC_DACL_PROTECTED:
samba-tool dfsn access remove "\\\\elles.inno.tech\\namespace1\\documents" \
"ELLES\\User2" \
--sec-desc-dacl-protected=Yes
...
SEC_DESC_DACL_PROTECTED = YES (The folder is visible to granted users and administrators)
Account name Access type
============ ===========
ELLES\User1 enumerate