Я использую сервер Debian 7 и имею следующий сценарий (примеры имен)
Пользователь:
- пол:пол
- Джон Пол
Каталог: /home/paul/Каталог
- Файл W (Владелец paul, Группа paul, Права: 0770)
- Файл X (Владелец paul, Группа paul, Права: 0700)
- Файл Y (Владелец paul, Группа paul, Права: 0700)
- Файл Z (Владелец Джон, Группа Пол, Права: 0770)
Пользователь john должен иметь возможность удалить «Файл Z», но не «Файл X» или «Файл Y». Он также должен иметь разрешение на редактирование и удаление «Файла W».
Вкратце: он должен иметь возможность удалять только свои файлы, но редактировать все, у кого есть на это разрешение.
Я ищу решение, чтобы использовать бит удаления каталога для указанных файлов. Вариант "chattr" не вариант, потому что ничего не должно делаться с правами root.
Есть у кого-нибудь идеи?
решение1
В модели безопасности POSIX для удаления файла вам достаточно иметь доступ на запись к нему родительский каталог. Таким образом, если у учетной записи «john» есть +w
права на /home/john/Directory, она всегда сможет удалять файлы внутри.
Но одно исключение — режим «липкий» / «ограниченное удаление». Когда вы устанавливаете+t
в каталоге удаление файлов ограниченотольковладельцу файла или владельцу каталога. (Например, /tmp
работает так.) Так что если выchmod +t
иchown root
каталог, вы должны получить ожидаемый результат.