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

         

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


Второе решение заключается в том, что файл надо "спрятать" в директорию, с соответствующими правами доступа.

Пусть у нас так же существуют две группы readers и writers, причем все члены группы writers входят также и в readers (но не наоборот :-).

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

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

Что можно сказать о втором круге проблем (невозможность самим владельцам файлов определять круг допущенных к файлу)?

Здесь все несколько хуже. Проблема даже не в том, что рядовой юзер не может сам менять состав групп. Эту то проблему можно решить достаточно просто. Можно было бы для каждого юзера завести отдельную группу (кстати, программа для добавления юзера adduser, так и предлагает делать) и написать специальную программу (естественно, "суидную"), которая исполнялась бы с правами root'а и позволяла юзеру менять состав группы, но не любой, а только его личной.

Однако, не торопитесь это делать. Проблема в том, что отдельный юзер может быть полноправным членом только 16-и групп. И если у юзера vasia окажется слишком много друзей, которые захотят включить его в свои группы, то реально он сможет "дружить" только с шестнадцатью, чьи группы будут первыми в списке групп.

Кроме того, это не решает проблему, если владелец файла захочет дать разные права нескольким разным группам.



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