> у меня есть файлсервер, на нём есть много файлов. Хочется особой > функциональности, которая возможно уже реализована, может кто-то слышал? > > Идея проста: при "удалении" пользователем файла с сервера, для него файл > "удалится", но для остальных он останется. Файл должен быть удалён > только когда все пользователи удалят его. Не с жиру беситесь? По какому протоколу в сервером клиенты разговаривают? По самбе?
> В голову сразу приходит такое решение: один reference директорий, и > директории для каждого пользователя, в которых создаются hardlinks на > файлы в reference директорий. Проблема заключается в добавлении файлов. > Добавление файлов должно происходить так: пользователь добавляет файл > в своём директории, а затем некая программа должна это заметить и > создать hardlink в reference директорию и в директории других В reference не надо, а то когда последний пользователъ удалит файл, надо будет что-нибудь прикручивать чтобы смотрело последний-ли и из reference удалялся. В качестве бакапа можно еще одного специального юзера сделать, и чтоб через него никто не лазил. Reference понадобится если с софтлинками будешь делать. > пользователей. Делать по крону не хочется, так как нужно чтобы новый > файл был виден по возможности сразу. То есть нужно писать демон который > бы с помощью fam мониторил все каталоги и при появлении нового файла > создавал бы hardlink. hardlink похоже действительно подойдет лутше чем soflink, имей в виду что возможны глюки с определением свободного места с клиентов (если по самбе). > Приходилось ли кому-либо сталкиваться с программой, реализующей такую > функциональнось? Мне нет :) Посмотри доки по самбе, должен быть способ запускать скрипт при создании мового файла (в том числе и копировании). Ну а скриптом уже все что угодно делать, в том числе и насаздовать ссылок остальным, с соответствующими атрибутами. При удалении все будет в порядке, hadlink так реализован. Не забудь запретить модифицировать такие файлы с самбы, т.к. lock будет глючить, насколько я знаю, файл блокируется на высоком уровне, т.е. сам файл будет беззащитен если к нему по другой ссылке обратится.