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

Как предотвратить монтирование ACL по NFS?

Я пытаюсь экспортировать / монтировать том NFS вообще без ACL (POSIX или NFS), но у меня это не получается.

Технический контекст: последний текущий debian с обеих сторон, том ext4.

Цель: я обеспечиваю строгий доступ с помощью списков управления доступом POSIX на сервере, и пользователи могут (будут) получать доступ к тому на другой машине с помощью NFS. Но любой пользователь, владеющий каталогом / файлом, может изменить ACL, что здесь нехорошо. Поэтому я хочу запретить пользователям изменять списки управления доступом, и простое удаление команд get / setfacl - не лучший способ. Отказ от поддержки ACL на серверном томе…

Итак, мой вопрос: возможно ли предотвратить ACL от монтирования NFS, не удаляя ACL на серверном томе? Если да, то как это можно сделать?

Я безуспешно тестировал использование no_acl / noacl: мой экспорт выполняется в версии NFSv3 с параметром no_acl. В / etc / exports:

/exports ip-of-client-during-tests(rw,sync,no_acl,no_subtree_check,fsid=0)
/exports/data ip-of-client-during-tests(rw,sync,no_acl,no_subtree_check)

Все сервисы перезагружены / перезапущены. Затем я монтирую его на клиенте с опцией «noacl» (что угодно):

mount -t nfs -o noacl,vers=3 my-server:/exports/data/ /var/data/

что дает в / proc / mounts:

server-name:/exports/data/ /var/data nfs rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,noacl,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=server-ip,mountvers=3,mountport=53844,mountproto=udp,local_lock=none,addr=server-ip 0 0

И я могу на клиенте получать / устанавливать ACL с помощью get / setfacl в принадлежащих мне каталогах / файлах, и изменения видны в файловой системе сервера. Я также пробовал использовать NFSv4, без изменений. Кстати, на сервере я не вижу опции «no_acl» в / proc / fs / nfs / exports:

/exports/data   client-ip(rw,root_squash,sync,wdelay,no_subtree_check,uuid=0bac8439:e7e2488e:817358d2:f2c94b85,sec=1)

даже если это видно с помощью exportfs -v:

/exports/data   client-ip(rw,wdelay,root_squash,no_subtree_check,no_acl,sec=sys,rw,root_squash,no_all_squash)

Вы можете отключить поддержку на стороне сервера, скомпилировав ядро ​​без CONFIG_NFSD_V3_ACL вариант.