Я хочу рекурсивно предоставить разрешение на запись конкретному пользователю в каталоге без потери каких-либо существующих разрешений, которые может иметь пользователь. Я считаю, что могу использовать что-то вроде этого, чтобы дать пользователю права на запись:
setfacl -R -m u:user:w dir/*
но проблема в том, что он отнимает все существующие разрешения, которые у пользователя уже могут быть. Например, если у пользователя были разрешения на выполнение перед выполнением команды setfacl, она заменит разрешение на выполнение разрешениями на запись.
Как я могу дать пользователю разрешение на запись, сохранив при этом существующие разрешения?
То, что вы хотите, называется "относительными разрешениями", функцией, которая некоторые реализации setfacl предоставляют, в основном используя классический синтаксис "+/-", используемый chmod
Однако, по крайней мере, на RHEL7 и Ubuntu 16.04 LTS, setfacl
делает не предоставить такую функцию. Например, что-то вроде setfacl -m user:root:+r /root/
вернуть сообщение об ошибке setfacl: Option -m: Invalid argument near character 11
Если ваш setfacl
В реализации отсутствует эта функция, у вас есть две возможности:
getfacl
выводить все списки ACL к файлу, редактируя такой файл в соответствии с вашими необходимыми правами доступа, затем используйте setfacl --restore
загрузить / применить новые разрешения;