Назад | Перейти на главную страницу

getcifsacl не работает с CIFS mount версиями 2 или 3

Когда я монтирую 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