LINUX.ORG.RU

Автоматические права на копируемые файлы. setfacl не помогает.

 ,


0

1

Гугл бессилен ))

Короче задача: имеется папка (или директория, кому как удобнее воспринимать), необходимо что бы все создаваемые/копируемые/перемещаемые в неё файлы и папки имели права доступа 600 и владельца root:root.

Попытка:

sudo setfacl -d -R -m u:root:r -m g:root:- /dir
sudo setfacl -d -R -m u::r -m g::- /dir

setfacl не помогает, точнее помогает, но только для создаваемых с ноля папок и файлов, но на копируемые и перемещаемые ничего не меняет. Гонять регулярный скрипт chown и chmod это же дичь.

Как можно красиво такое реализовать? Спасибо.

Ответ: юзаем bindfs.

Для того чтобы гугл тебя понял - ищи «наследование прав». Но единого общего решения не будет.

Как можно красиво такое реализовать?

очевидный man systemd.path

bass ★★★★★ ()
Ответ на: комментарий от bass

Всё оказалось намного проще, юзаем bindfs и никаких проблем, например:

sudo mount  /dev/mapper/test /media/key
sudo bindfs -o perms=0600,mirror=@root --force-group=root /media/key /media/test
/media/key - права 000 и root:root

/media/test - права 600 и root:root

Все копируемые, перемещаемые, создаваемые файлы и папки будут с атрибутом прав 600 и root:root.

Задача решена, всем спасибо.

Dimarius ()
Последнее исправление: Dimarius (всего исправлений: 1)

необходимо ли

1. на самом деле обходимо: если не запускать внутри /dir програм от левых пользователей внутри, достаточно

chmod og-x /dir
chown root /dir

Однако: если ты раздаёшь рутовые права кому попало - это не нужно. Если нет - ты контроллируешь способ, которым «туда» попадают файлы. Потому:

2. перенести /dir в отдельную ФС и не использовать программы, пытающиеся без просу сохранять права

echo 'function mv { rsync --remove-source-files "$@"; }' >>/root/.bashrc

3. ну, а если ты не веришь в дисциплинированность root-а - отбери у него CAP_CHOWN.

DonkeyHot ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.