Я провел некоторое исследование OpenSolaris и ZFS для использования в NAS.
К настоящему времени я создал следующее:
/ tank / projects
/ бак / хранение
/ tank / разработчик
/ бак / песочница
Общее пространство, выделенное для бака, составляет 3,4 Тбайт (RAIDZ2). Developers mount - это наш репозиторий Subversion, он должен быть заблокирован, чтобы только системные администраторы имели доступ к этому контенту, а также те, кто находится в группе suDevelopers.
SandBox - это игровая площадка, все открытые двери, чтение / запись / удаление чего угодно.
Мне интересно, как я достигну следующего, нужно ли мне использовать ACL или просто стандартные разрешения Unix.
Есть три основные группы пользователей этого NAS, это иерархия пользователей. Для совместного использования этого NAS нет никаких рекламных объявлений или чего-либо еще, кроме CIFS.
suDevelopers У них есть доступ ко всему содержимому в tank.
suStaff Эти пользователи являются персоналом в помещении, они должны иметь доступ ко всему, кроме zfs разработчика в баке.
suContractors Эти пользователи могут видеть только папку Хранилища и не иметь доступа к остальным.
Проблема в том, что некоторые файлы в области хранения содержат конфиденциальную информацию (серийные номера, лицензионные ключи), которые подрядчики не должны видеть. Можем ли мы установить эти разрешения в Windows пользователем, который поместил туда файл, и они автоматически установятся в нужное место?
Я не уверен, как правильно сделать это и следует ли мне использовать ACL или просто CHMOD.
Что ж, независимо от того, используете ли вы традиционные разрешения POSIX или ACL, вы будете использовать chmod
на Solaris. Я бы посоветовал вам использовать в этом случае ACL. Вам придется применить ACL отдельно к каждой файловой системе в пуле хранения резервуаров. Я предлагаю установить aclmode
и aclinherit
свойства каждой файловой системы для passthrough
также.
Я думаю, что предпочтительнее устанавливать ACL на стороне Solaris, а не делать это через окна.
В основном это выглядело бы примерно так:
chmod -R A=\
group:suDevelopers:full_set,\
group:sysadmins:full_set,\
/tank/projects
chmod -R A=\
group:suDevelopers:full_set:allow,\
group:suStaff:full_set:allow,\
group:suContractors:full_set:allow
/tank/storage
chmod -R A=everyone@:full_set:allow /tank/sandbox
и т. д. по мере необходимости. Вы также можете использовать read_set
для разрешений только для чтения.
Есть много других способов избавиться от вещей с помощью ACL, это чрезвычайно мощная система в Solaris. Ты можешь читать man chmod
и man zfs
для подробностей.
Есть также Эта статья что дает еще несколько примеров.
Также убедитесь, что вы используете /usr/bin/chmod
вместо того /usr/gnu/bin/chmod
который, я считаю, используется по умолчанию.