Linux: разрешение на удаление файлов, но запрет на создание
Доброго времени суток всем.
Можно ли настроить в линуксе такое разграничение прав для директории:
— пользователь может удалять файлы из директории;
— пользователь не может создавать новые файлы в директории.
Как выглядит процесс:
1. Пользователь создает в директории файлы.
2. Администратор шаманит.
3. Пользователь может удалять старые файлы, но не может создавать новые.
Парюсь со sticky bit, но пока либо могу удалить/создать, либо не могу удалить/создать.
Заранее спасибо.
UPD
Задачка, можно сказать, спортивная. Просто в Windows такое сделать можно, стало интересно, можно ли с линуксом, но пока не смог =)
Разместить эту директорию на отдельном разделе. Запустить простенький демон, который будет заполнять все освободившееся место в этой директории (на директорию налепить t-бит, файлу назначить владельцем рута).
Все. Задача решена: при удалении пользователем файла место сразу же будет забито, новый файл он создать не сможет.
А невелосипедных способов, естественно, не существует.
С selinux еще другая проблема есть: кое-какие демоны и приложения с ним «вдруг» перестают работать или же работают коряво.
Но, конечно, если подойти с умом (рисунок, кстати, в тему), то все можно сделать — но уж очень долго мануалы читать придется.
Написать демона на баше — намного проще, если хочется решить задачу быстро.
Операции создания/удаления файлов требуют прав на запись в директорию, где находятся файлы. Выставлять права от типа совершаемой операции, емнип, невозможно. Стики биты здесь тоже не помощники, т.к. запрет на изменение директории приведёт к невозможности удаления файлов.
Можно сваять некие костыли, в духе использования разных пользователей для чтения/удаления (хотя пользователей имеющий право на удаление всё же будет иметь право на создание), либо использовать различные костыли в духе алиасов на удаление (что, дескать, удаление = «chmod +w dir; rm dir/file; chmod -w dir»).
Мне кажется, что других путей нет.