У меня тут настоящая головоломка... Текущая версия Proxmox 9.0.11. Хост изначально был настроен на голом железе с native ZFS/Samba. Потом его виртуализировали под Proxmox, и пул данных ZFS был импортирован на Proxmox-хост. Казалось, всё работает хорошо, пока я не попытался изменить права ACL через Windows-хост. "Failed to Enumerate Objects in the Container Permission Denied".
Создание новой папки проходит, но в логах Samba возникает ошибка:
[2025/10/13 17:14:32.496792, 1] ../../source3/smbd/open.c:4406(apply_new_nt_acl) apply_new_nt_acl: inherit_new_acl failed for .::TMPNAME :22302%2787496803312336710: Новая папка с ошибкой NT_STATUS_ACCESS_DENIED.
Getfacl и setfacl работают и на самом Proxmox-хосте, и на Samba-хосте. Я даже могу через sudo переключиться на другого пользователя и задать setfacl от его имени. ACL-права выглядят правильно и в Linux, и в безопасности Samba, но изменить ACL через вкладку безопасности Windows – никак.
Чтобы исключить проблемы с правами, пользователю, который должен менять разрешения, дали владение и полные права 777. Но всё равно изменение ACLы невозможно.
Директории с данными на исходном ZFS-пуле настроены с параметрами direct-io=1, expose-acl=1. Виртуализованный хост монтирует virtiofs.
Настройки ZFS такие:
aclmode passthrough
aclinherit passthrough
acltype posix
xattr on
В smb.conf:
vfs objects = acl_xattr aio_pthread acl
group control = yes
acl map full control = yes
inherit acls = yes
inherit owner = yes
map acl inherit = yes
store dos attributes = yes
Причина, по которой я подозреваю virtiofs: я могу, загрузившись с другого диска с другой ОС на голом железе, запустить тот же виртуализированный Samba-сервер, импортировать ZFS-пул – и изменение ACL работает!
Я понимаю, что можно было бы просто конвертировать все шары в zvol-ы на этом хосте – это было бы проще. Но там много нюансов, и насколько я понимаю virtiofs, это отличный вариант, если бы только ACLы работали.
Создание новой папки проходит, но в логах Samba возникает ошибка:
[2025/10/13 17:14:32.496792, 1] ../../source3/smbd/open.c:4406(apply_new_nt_acl) apply_new_nt_acl: inherit_new_acl failed for .::TMPNAME :22302%2787496803312336710: Новая папка с ошибкой NT_STATUS_ACCESS_DENIED.
Getfacl и setfacl работают и на самом Proxmox-хосте, и на Samba-хосте. Я даже могу через sudo переключиться на другого пользователя и задать setfacl от его имени. ACL-права выглядят правильно и в Linux, и в безопасности Samba, но изменить ACL через вкладку безопасности Windows – никак.
Чтобы исключить проблемы с правами, пользователю, который должен менять разрешения, дали владение и полные права 777. Но всё равно изменение ACLы невозможно.
Директории с данными на исходном ZFS-пуле настроены с параметрами direct-io=1, expose-acl=1. Виртуализованный хост монтирует virtiofs.
Настройки ZFS такие:
aclmode passthrough
aclinherit passthrough
acltype posix
xattr on
В smb.conf:
vfs objects = acl_xattr aio_pthread acl
group control = yes
acl map full control = yes
inherit acls = yes
inherit owner = yes
map acl inherit = yes
store dos attributes = yes
Причина, по которой я подозреваю virtiofs: я могу, загрузившись с другого диска с другой ОС на голом железе, запустить тот же виртуализированный Samba-сервер, импортировать ZFS-пул – и изменение ACL работает!
Я понимаю, что можно было бы просто конвертировать все шары в zvol-ы на этом хосте – это было бы проще. Но там много нюансов, и насколько я понимаю virtiofs, это отличный вариант, если бы только ACLы работали.
