Настройка и работа в Linux
adb5321d

Решение первое


Первое состоит в том, чтобы "размазать" права владельца на группу. Обычно, владелец отличается тем, что имеет право записи (модификации файла). Соответственно, "группе допущенных" можно дать права только для чтения (и/или исполнения) файла, а "всем остальным" вообще не давать никаких прав.

Так вот. Если для изменения файла можно использовать только одну определенную программу, то надо сделать эту программу (или ее копию) "суидной", то есть такой, которая при выполнении меняет свой "эффективный userID" на ID владельца. Естественно, владельцем такой программы должен быть тот же юзер, что и владелец файла, который мы хотим модифицировать, а права на запуск этого файла надо дать только той группе, которой мы хотим дать права на модификацию. Кстати, "владелец" файла может быть и фиктивным юзером, то есть зарегистрированным в системе только для этой цели и не соответствовать никакому реальному человеку.

Таким образом, нужно создать две разные группы, в первую (writers) внести только тех юзеров, которые имеют право изменять файл, а во вторую (readers) тех, кто может только читать файл (ну и всех из writers, пожалуй, тоже).

Сам файл должен быть открыт для записи только владельцу (это может быть кто-нибудь из группы writers или вообще фиктивный юзер), для чтения - "группе допущенных" и это должна быть группа readers, и, наконец, для "всех остальных" можно смело убирать любые права. Ну, а та программа, которая предназначена для модификации, должна иметь того же владельца, что и исходный файл, группу - writers, быть "суидной" и права на запуск должны быть только у группы и владельца (хотя, если он фиктивный, то ему не обязательно).



Содержание раздела