Добрый день!Появилась задача перенести файловое хранилище с Windows на Linux. Все бы ничего но в одном из отделов начальник поросил организовать права доступа, как были на Windows хранилише. А было там следующее, есть одна директория в (структура доменная) в которой у отдела полные права доступа, а остальные отделы имеют возможность создать но не имеют возможности изменять или удалять созданный файл или директорию. Посмотрел на Windows хранилище там в свойствах безопасности можно развернуть дополнительные разрешения и снять галочки с удаления. Пробовал средствами Windows задать подобные права на новом сервере но они не применяюся, сбрасываются. Я так понимаю линукс не распознает подобных атрибутов. Возможно ли списком ACL или каким то другим инструментом реализовать данную задачу?
За раннее благодарю!
Что мешает в винде создать _пустой_ файл на месте существующего?
> Что мешает в винде создать _пустой_ файл на месте существующего?Linux, который сидит за Samba.
chattr +i сработает как O_EXCL|O_CREAT для open() и не даст сделать O_RDWR и O_WRONLY.
>> Что мешает в винде создать _пустой_ файл на месте существующего?
> Linux, который сидит за Samba.
> chattr +i сработает как O_EXCL|O_CREAT для open() и не даст сделать O_RDWR
> и O_WRONLY.Да, но тоже не совсем подходит под условия. "chattr +i" запретит даже группе вносить изменения если я правильно понял. Сейчас попробую, для общего развития. Спасибо!
> Что мешает в винде создать _пустой_ файл на месте существующего?Не понял вопроса! Я тестово создавал файл из под винды на новой шаре, выставлял ему права необходимые, что бы потом в консоли проверить что изменилось в ACL, но когда жмешь применить все права сбрасываються на дефолтные.
SAMBA такое не умеет.Оно, конечно, можно в Linux, но это извращение. Приготовь хост к аналу (ну, типа все утилиты поставь) и запусти сервисом [systemd?]:
stdbuf -o0 inotifywait -e create -rm /your/samba/dir | stdbuf -o0 -i0 grep -v ISDIR| \
stdbuf -i0 sh -c 'while read dir cmd file ; do chattr +i $dir$file ; done'Перед этим можно сделать chattr +a /your/samba/dir.