Ключевые слова:zfs, solaris, acl, (найти похожие документы)
From: Alexander Eremin <http://www.sunhelp.ru>
Date: Sun, 23 Feb 2008 17:02:14 +0000 (UTC)
Subject: Используем ZFS ACLs для ограничения доступа
Оригинал: http://www.sunhelp.ru/archives/122-Ispolzuem_ZFS_ACLs__dlJa_ogranicheniJa_dostupa.html
На некоторых критичных системах, где приходится быть параноиком, мы
ограничиваем список пользователей, кому разрешено выполнять
большинство setuid и setgid команд (на случай появления zero day
exploit), то есть мы разрешаем запуск данных бинарников только для
администраторов. Раньше, если мы хотели создать такие ограничения, мы
выполняли команду chmod 4750, и затем меняли группу с помощью chgrp.
Это было довольно неудобно, и мы не могли иметь двух различных видов
ограничений для одного файла.
Заметьте: если мы изменяем владельца файла, группу или разрешения для
файлов в пакете, мы должны использовать команду installf, чтобы
обновить базу данных установленных в системе программ.
# chmod 4750 /usr/bin/su
# chgrp sysadmin /usr/bin/su
# installf SUNWcsu /usr/bin/su 4750 root sysadmin
Затем появились UFS ACLs. Это позволило добавлять множество ACLs к
тому же самому файлу, и, хотя теперь мы и могли иметь различные виды
разрешений для файлов, нам все еще приходилось выполнять chmod 4750
для всех файлов, к которым надо было закрыть доступ.
Теперь, когда мы имеем ZFS, появилась удобная возможность использовать
ZFS ACLs*, чтобы отменить разрешения: так, если пользователю Дэнни
нельзя выполнять /usr/bin/su, мы можем лишь добавить ACL для удаления
разрешения на запуск для этого пользователя.
# chmod A+user:danny:execute:deny /usr/bin/su
Если теперь Дэнни захочет запустить su, он увидит что-то вроде:
$ ls -l /usr/bin/su
-r-sr-xr-x+ 1 root sys 34624 Feb 26 2007 /usr/bin/su
$ su -
bash: su: Permission denied
Как и с UFS ACLs, способ определить наличие у файла ACL - знак плюс в
конце разрешений, когда мы выполняем команду ls-l. Если мы хотим
увидеть ACL полностью, используем ls с опцией -v:
$ ls -v /usr/bin/su
-r-sr-xr-x+ 1 root sys 34624 Feb 26 2007 /usr/bin/su
0:user:danny:execute:deny
1:owner@:write_data/append_data:deny
2:owner@:read_data/write_xattr/execute/write_attributes/write_acl
/write_owner:allow
3:group@:write_data/append_data:deny
4:group@:read_data/execute:allow
5:everyone@:write_data/append_data/write_xattr/write_attributes
/write_acl/write_owner:deny
6:everyone@:read_data/read_xattr/execute/read_attributes/read_acl
/synchronize:allow
* - Подробнее о ZFS акцесс листах читайте здесь
По заметке Мартина Инглунда