bugaga0112358
@bugaga0112358

Linux: разрешение на удаление файлов, но запрет на создание

Доброго времени суток всем.

Можно ли настроить в линуксе такое разграничение прав для директории:
— пользователь может удалять файлы из директории;
— пользователь не может создавать новые файлы в директории.

Как выглядит процесс:
1. Пользователь создает в директории файлы.
2. Администратор шаманит.
3. Пользователь может удалять старые файлы, но не может создавать новые.

Парюсь со sticky bit, но пока либо могу удалить/создать, либо не могу удалить/создать.

Заранее спасибо.

UPD
Задачка, можно сказать, спортивная. Просто в Windows такое сделать можно, стало интересно, можно ли с линуксом, но пока не смог =)
  • Вопрос задан
  • 8358 просмотров
Пригласить эксперта
Ответы на вопрос 8
@Eddy_Em
Разместить эту директорию на отдельном разделе. Запустить простенький демон, который будет заполнять все освободившееся место в этой директории (на директорию налепить t-бит, файлу назначить владельцем рута).
Все. Задача решена: при удалении пользователем файла место сразу же будет забито, новый файл он создать не сможет.

А невелосипедных способов, естественно, не существует.
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Попробуйте про xattr почитать, скорее всего там есть искомое.
Ответ написан
colonel
@colonel
Разработчик PHP, Laravel
Нельзя.
Удаление и создание — это запись в директорию.
Право на запись либо есть, либо нет.
Ответ написан
Комментировать
sledopit
@sledopit
Операции создания/удаления файлов требуют прав на запись в директорию, где находятся файлы. Выставлять права от типа совершаемой операции, емнип, невозможно. Стики биты здесь тоже не помощники, т.к. запрет на изменение директории приведёт к невозможности удаления файлов.
Можно сваять некие костыли, в духе использования разных пользователей для чтения/удаления (хотя пользователей имеющий право на удаление всё же будет иметь право на создание), либо использовать различные костыли в духе алиасов на удаление (что, дескать, удаление = «chmod +w dir; rm dir/file; chmod -w dir»).
Мне кажется, что других путей нет.
Ответ написан
Комментировать
ertaquo
@ertaquo
Подобное можно сделать при помощи файловой системы AFS. Но как именно это делается — не знаю.
Ответ написан
Комментировать
@stg34
А ACL не спасает в данном случае?
Ответ написан
@Tthread
Посмотрите в сторону RSBAC. Там реализованы различные модели разграничения доступа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы