Долго искал, но не мог найти ничего вразумительного по использованию утилиты, позволяющей из командной строки линукса управлять правами доступа к файлам на шарах.
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 есть несущественные отличия.
Текст 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:
копнём глубже:
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, но базовое для себя уяснил, пока мне этого хватает.
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, но базовое для себя уяснил, пока мне этого хватает.
Комментариев нет:
Отправить комментарий
Пожалуйста, воздержитесь от грубостей и персональных нападок.
Я не против матерщины, но она должна быть уместной и использоваться для выражения эмоций, а не в качестве основного средства выражения мыслей.