Руководство по администрированию файловых систем ZFS Solaris

Делегирование разрешений ZFS

Можно использовать команду zfs allow для предоставления разрешений на наборы данных ZFS пользователям, отличным от root, следующими способами:

В приведенной ниже таблице описаны операции, которые можно делегировать, и все зависимые разрешения, необходимые для выполнения делегированных операций.

Разрешение (подкоманда) 

Описание 

Зависимости 

allow

Возможность предоставлять имеющиеся у вас разрешения другому пользователю. 

Вы должны также обладать разрешением, которое предоставляете. 

clone

Возможность клонировать все моментальные снимки этого набора данных.  

Нужно также иметь разрешение на выполнение операций create и mount в исходной файловой системе.

create

Возможность создавать дочерние наборы данных. 

Нужно также иметь разрешение на выполнение операции монтирования mount.

destroy

Возможность удалить набор данных. 

Нужно также иметь разрешение на выполнение операции монтирования mount.

mount

Возможность монтировать и размонтировать набор данных, а также создавать и удалять ссылки на устройство тома.  

 

promote

Возможность заменить клон набором данных. 

Нужно также иметь разрешение на выполнение операций mount и promote в исходной файловой системе.

receive

Возможность создания дочерней файловой системы с помощью команды zfs receive.

Необходимо также иметь возможность выполнения операций mount и create.

rename

Возможность переименовать набор данных. 

Нужно также иметь разрешение на выполнение операций create и mount в новом родительском наборе данных.

rollback

Возможность отката моментального снимка. 

Нужно также иметь разрешение на выполнение операции монтирования mount.

send

Возможность посылать потоковое представление моментального снимка. 

 

share

Возможность предоставлять и отключать общий доступ к набору данных. 

 

snapshot

Возможность создавать моментальный снимок набора данных. 

 

Пользователь может делегировать следующий набор разрешений (которые могут быть ограничены разрешением только для доступа, чтения или изменения):

Кроме того, можно делегировать следующие свойства ZFS пользователям, отличным от root:

Некоторые из этих свойств можно указать только в момент создания набора данных. Описание этих свойств ZFS приведено в разделе Введение в свойства ZFS.

Описание синтаксиса для делегирования разрешений (zfs allow)

Команда zfs allow имеет следующий синтаксис:


# zfs allow -[ldugecs] everyone|user|group[,,...] perm|@setname,...] filesystem| volume

Следующая команда zfs allow (выделено жирным шрифтом) показывает, кому делегированы разрешения:


zfs allow [-uge]|user|group|everyone [,...] filesystem | volume

Несколько сущностей можно задавать в виде списка, разделенного запятыми. Если не указаны параметры -uge, аргумент интерпретируется по умолчанию как ключевое слово everyone, за которым следует имя пользователя, затем имя группы. Чтобы указать пользователя или группу с именем everyone, используйте параметр -u или -g. Чтобы указать имя группы, совпадающее с именем пользователя, воспользуйтесь параметром -g. Параметр -c предоставляет разрешения времени создания.

Следующая команда zfs allow (выделено жирным шрифтом) показывает, как задаются разрешения и наборы разрешений:


zfs allow [-s] ... perm|@setname [,...] filesystem | volume

Несколько разрешений можно задавать в виде списка, разделенного запятыми. Имена разрешений совпадают с подкомандами и свойствами ZFS. Для получения дополнительной информации см. предыдущий раздел.

Разрешения можно объединять в наборы разрешений, признаком которых служит параметр -s. Наборы разрешений могут использоваться в других командах zfs allow для указанной файловой системы и ее потомков. Наборы разрешений проверяются динамически, так что внесенные в набор изменения немедленно обновляются. Наборы разрешений следуют тому же соглашению об именах, что и файловые системы ZFS, но имя должно начинаться с символа (@) и не может быть длиннее 64 символов.

Следующая команда zfs allow (выделено жирным шрифтом) показывает, как делегируются разрешения:


zfs allow [-ld] ... ... filesystem | volume

Параметр -l означает, что разрешение предоставляется для указанного набора данных, но не для его дочерних наборов данных (если не указан также параметр -d). Параметр -d означает, что разрешение предоставляется для дочерних наборов данных, но не для этого набора данных (если не указан также параметр -l). Если ни один из параметров -ld не задан, разрешения предоставляются для файловой системы или тома и всех их потомков.

Удаление делегированных разрешений ZFS (zfs unallow)

Можно удалить ранее предоставленные разрешения с помощью команды zfs unallow.

Предположим, разрешения create, destroy, mount и snapshot делегированы следующим образом:


# zfs allow cindys create,destroy,mount,snapshot tank/cindys
# zfs allow tank/cindys
-------------------------------------------------------------
Local+Descendent permissions on (tank/cindys)
        user cindys create,destroy,mount,snapshot
-------------------------------------------------------------

Чтобы удалить эти разрешения, используйте команды, подобные следующим:


# zfs unallow cindys tank/cindys
# zfs allow tank/cindys