На FreeNAS (FreeBSD) ... Я пытаюсь сделать папку "не удаляемой".

Я вошел как root. Я создал папку с именем test и chmod в 700 (rwx------) . Владелец - root , группа - wheel .

Затем я вхожу в систему как пользователь с именем john , который является частью группы bbstaff - и я могу переименовать И удалить папку test . Разве это не может быть невозможно?

Я думал, что разрешения w помешали переименованию.

2 ответа2

3

Решение кувалды для решения этой проблемы - сделать каталог неизменным. Это должно быть сделано с особой осторожностью, так как это не очень распространенная операция, поэтому, если вы сделаете это, очень хорошая идея оставить файл в каталоге с гигантским предупреждением:

# /some/directory/VAR_HAS_BEEN_MADE_IMMUTABLE.WARNING

Как только вы сделали это:

# chflags schg /some/directory/var

Вы обнаружите, что он больше не может быть перемещен, удален или изменен даже пользователем root, пока вы не переверните флаг обратно.

Обратите внимание, что это подход BSD к команде linux chattr +i

http://www.cyberciti.biz/tips/howto-write-protect-file-with-immutable-bit.html

1

Google предлагает много ответов, в том числе один, который гласит:«установка бита привязки в родительском каталоге разрешит удаление только владельцу каталога.

chmod +t /some /dir /ParentDir

Посмотрите раздел использования на http://en.wikipedia.org/wiki/Sticky_bit для получения дополнительной информации о Sticky битах "

Этот также советует использовать липкий бит.

В-третьих, на этой странице написано «Когда каталог становится липким, он добавляет специальную функцию безопасности. Он запрещает кому-либо удалять или переименовывать файлы в каталоге, если они не владеют файлом. "

Похоже, это ваше решение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .