Скажем, я хочу предоставить colleague
пользователю доступ на чтение к каталогу /rather/long/path/to/the/directory
, но не обязательно к его родительским каталогам.
Как объяснено, например, здесь и там, я сначала должен убедиться, что colleague
может пройти путь. Использование setfacl
:
setfacl -m u:colleague:x /rather
setfacl -m u:colleague:x /rather/long
setfacl -m u:colleague:x /rather/long/path
setfacl -m u:colleague:x /rather/long/path/to
setfacl -m u:colleague:x /rather/long/path/to/the
setfacl -m u:colleague:xr /rather/long/path/to/the/directory
Это довольно утомительно для глубоко вложенного пути. Есть ли более элегантный способ сделать это?
PS Чтобы сделать это немного сложнее, будучи обычным пользователем, я мог бы не иметь права изменять разрешения для каталога верхнего уровня в пути (например, /home
). Если возможно, решение должно либо игнорировать эти каталоги (при условии, что colleague
может их обойти), либо, что еще лучше, проверить, разрешено ли colleague
обойти их, и выдать сообщение об ошибке, если это не так.