Когда я монтирую CIFS, делитесь с vers=1.0
Я могу выполнить getcifsacl
успешно.
# mount -t cifs //example.com/Users/milo /mnt/cifs -o vers=1.0
# getcifsacl /mnt/cifs/file.png
REVISION:0x1
CONTROL:0x8504
OWNER:S-1-5-21-1111111111-222222222-33333333-11824
GROUP:S-1-5-21-1111111111-222222222-33333333-513
ACL:S-1-5-21-1111111111-222222222-33333333-11824:ALLOWED/I/FULL
ACL:S-1-5-21-1111111111-222222222-33333333-3200:ALLOWED/I/FULL
ACL:NT Authority\SYSTEM:ALLOWED/I/FULL
Но когда я сажусь с vers=2.0
, или 2.1
, или 3.0
, Чтение ACL не выполняется.
getxattr error: 95
REVISION:0x0
CONTROL:0x0
ОС - Debian Stretch (9.6), пакет cifs-utils 2: 6.7-1. Общий ресурс CIFS взят из хранилища данных Nettapp. Монтирует из Windows XP, 8, 10 нормально работает.
Зачем getcifsacl
зависит от версии протокола SMB? Могу ли я читать ACL через новый протокол SMB?
Чтобы это работало, нужно более новое ядро и новые утилиты cifs-utils.
Чтение ACL getcifsacl
и установив его setcifsacl
с монтированием версий 2.0, 2.1 или 3.0 хорошо работает с ядром 4.19.0-0.bpo.1-amd64
(Backport для Debian Strech) и версия cifs-utils cifs-utils-6.8
(тег git). Все утилиты работают и с ядром 4.20.4.
Я получил подсказки по решению в списке рассылки samba-Technical: https://lists.samba.org/archive/samba-technical/2019-January/132176.html