Чтобы юзер мог писать новые файлы - он должен иметь права записи для директории, а если есть права записи - то он может удалять файлы в этой директории. Можно попробовать поставить флаг immunitable (chattr +t dir), но тогда скорей всего не сможет их изменять. и это работает тока для ext2(3)fs (вроде)
> Чтобы юзер мог писать новые файлы - он должен иметь права записи для директории, а если есть права записи - то он может удалять файлы в этой директории.
Что-то мне кажется, что можно попробовать извернуться.
Смотри. Если на каталог поставить sticky-бит, то пользователь сможет уделять только те файлы, которые ему принадлежат (есть вариант, когда он может удалять файлы, в которые может писать, но по-моему, это только для соляриса специфично, не помню).
Если на каталог поставить suid, то владельцем файлов, создаваемых в каталоге, будет владелец каталога.
Тогда, пользователь должен создать файл, имея возможность записи в него (обычная семантика + umask), но из-за s-бита, владельцем станет не он, а из-за t-бита - не сможет его удалить.
Впрочем, я не уверен, что точно так сработает. Хотя, вроде, может получиться.
не знаю. почему-то подумалось, что с suid оно так же работает. но не работает, проверил. а жаль. :) хотя, если семантика suid для каталогов ничем не занята, можно попробовать ее использовать. :) только тут уж надо грязными руками в ядро.