Как я лишаю возможности машину Windows удалять каталог (не его содержание) на сервере Samba Linux?

В заголовке говорится все это. (Один из редких случаев, где это на самом деле соответствует.:P)

2
задан 21 September 2014 в 12:28
2 ответа

Здесь может сработать старый трюк со стороны Linux:

mkdir StayingAlive
sudo touch StayingAlive/.CantTouchThis
sudo chattr +i StayingAlive/.CantTouchThis

Ключевым моментом здесь является неизменяемый атрибут на .CantTouchThis (вам, вероятно, понадобится более серьезное имя , например .rootfile ). Этот атрибут предотвращает удаление (или даже изменение) файла - даже root не может удалить его без предварительного удаления атрибута. Этот файл предотвратит очистку каталога и, следовательно, предотвратит его удаление.

Когда я делал это в прошлом, я обычно также менял владельца папки и предоставлял пользователю доступ через бит setgid (g + s) - хотя доводы, лежащие в основе этого, сейчас ускользают от меня

sudo chown root.user StayingAlive
sudo chmod g+sw StayingAlive
2
ответ дан 3 December 2019 в 11:41

Чтобы удалить каталог, он должен быть пустым, и у вас должны быть права на запись для его родительского элемента.

Таким образом, вы можете либо предотвратить опустошение каталога, как предлагается STW, либо убедиться, что у пользователя нет прав на запись в родительском каталоге, который он не может удалить.

Если у вас есть каталог с именем / foo / bar и файл с именем / foo / bar / file , пользователь с правами записи в / foo / bar может удалить файл. Но разрешения на запись в / foo / bar не означают разрешения на удаление / foo / bar , для удаления потребуются разрешения на запись в / foo .

0
ответ дан 3 December 2019 в 11:41

Теги

Похожие вопросы