Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


четверг, 25 сентября 2014 г.

SMBCACLS: практические примеры

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

NB! на своих серверах я не использую "default domain", поэтому имена доменных пользователей у меня всегда задаются в виде домен\\логин.

Простой просмотр прав (унаследованных и нет) на файл или папку в расшаренном ресурсе:


smbcacls //сервер[.FQDN]/ресурс файл|каталог -U домен\\пользователь

папка созданная рутом на самом сервере:

smbcacls //cnt30srv042.contoso.com/scan cnt30prn098 -U contoso\\gates_wh
Enter contoso\gates_wh's password:
REVISION:1
CONTROL:SR|DP
OWNER:Unix User\root
GROUP:CNT30SRV042\Domain Admins
ACL:Unix User\root:ALLOWED/0x0/FULL
ACL:CNT30SRV042\Domain Admins:ALLOWED/0x0/FULL
ACL:Everyone:ALLOWED/0x0/
ACL:Creator Owner:ALLOWED/OI|CI|IO/FULL
ACL:Creator Group:ALLOWED/OI|CI|IO/FULL
ACL:Everyone:ALLOWED/OI|CI|IO/READ




Вот как оно выглядит в более развернутом виде:



Для папок, созданных из windows есть несущественные отличия.

Добавление/удаление прав доступа.

smbcacls -a 'ACL:текст' //сервер[.FQDN]/ресурс файл|каталог -U домен\\пользователь

Текст ACL задается в апострофах, поэтому экранировать спецсимволы не нужно и можно копировать текст прямо из вывода предыдущей команды

smbcacls -a 'ACL:CONTOSO\domain users:DENIED/0x0/DPO' //cnt30srv042.contoso.com/scan cnt30prn005 -U contoso\\gates_wh

В данном случае я хочу запретить (DENIED) всем доменным пользователям:
1. удалять папку //cnt30srv042.contoso.com/scan/cnt30prn005 (D)
2. менять разрешения на нее (P)
3. менять ее владельца (O)

При этом запрет удаления относится только к самой папке, но не к ее подпапкам и файлам.

(IRL: у меня есть шара scan, в которой созданы подкаталоги для всех сетевых МФУ, умеющих сканировать на smb/ftp-ресурсы. Пользователь сканирует на любом МФУ свои документы, возвращается к себе, заходит в шару, находит каталог с именем МФУ и забирает оттуда свои сканы.
Документы могут быть важными, поэтому пользователь должен иметь возможность удалять отсканированное, но не иметь возможности удалить каталог, куда МФУ помещает результаты работы. Поэтому для файлов и подпапок есть право на удаление и т.п., а для самой папки - нету)

smbcacls //cnt30srv042.contoso.com/scan cnt30prn005 -U contoso\\gates_wh
Enter contoso\gates_wh's password:
REVISION:1
CONTROL:SR|SI|DP
OWNER:CONTOSO\gates_wh
GROUP:CONTOSO\Domain Users
ACL:Everyone:DENIED/0x0/D
ACL:CONTOSO\Domain Users:DENIED/0x0/D
ACL:CONTOSO\Domain Users:DENIED/0x0/DPO
ACL:CONTOSO\gates_wh:ALLOWED/I/FULL
ACL:Creator Owner:ALLOWED/OI|CI|IO|I/FULL
ACL:CONTOSO\Domain Users:ALLOWED/I/FULL
ACL:Creator Group:ALLOWED/OI|CI|IO|I/FULL
ACL:Everyone:ALLOWED/OI|CI|I/READ


Вот как это выглядит в GUI:



копнём глубже:




Удаление ACL выглядит очень похоже:


smbcacls -D 'ACL:текст' //сервер[.FQDN]/ресурс файл|каталог -U домен\\пользователь

Каких-то вразумительных указаний насчет формата ACL для удаления я не нашел, но использование точного текста существующего ACL привело ко вполне ожидаемому результату.

Обратите внимание! При добавлении ACL используется параметр "-a" (строчная "a"), тогда как для удаления - "-D" (заглавная "d").

Снимем запрет на удаление каталога всё того же 5-го МФУ:

smbcacls -D 'CONTOSO\domain users:DENIED/0x0/DPO' //cnt30srv042.contoso.com/scan cnt30prn005 -U contoso\\gates_wh

smbcacls //cnt30srv042.contoso.com/scan cnt30prn005 -U contoso\\gates_wh
Enter contoso\gates_wh's password:
REVISION:1
CONTROL:SR|SI|DP
OWNER:CONTOSO\gates_wh
GROUP:CONTOSO\Domain Users
ACL:Everyone:DENIED/0x0/D
ACL:CONTOSO\Domain Users:DENIED/0x0/D
ACL:CONTOSO\gates_wh:ALLOWED/I/FULL
ACL:Creator Owner:ALLOWED/OI|CI|IO|I/FULL
ACL:CONTOSO\Domain Users:ALLOWED/I/FULL
ACL:Creator Group:ALLOWED/OI|CI|IO|I/FULL
ACL:Everyone:ALLOWED/OI|CI|I/READ


Как видим, второй ACL для доменных пользователей исчез. Что в GUI?




Запреты на перехват владения и смену прав исчезли. Однако, запрет на удаление каталога остался, поскольку помимо ACL:CONTOSO\domain users:DENIED/0x0/DPO есть еще и ACL:CONTOSO\domain users:DENIED/0x0/D, который я не удалял.

Я не разбирался подробно со всеми параметрами smbcacls, но базовое для себя уяснил, пока мне этого хватает.

Комментариев нет:

Отправить комментарий

Пожалуйста, воздержитесь от грубостей и персональных нападок.
Я не против матерщины, но она должна быть уместной и использоваться для выражения эмоций, а не в качестве основного средства выражения мыслей.