Как запретить пользователям удалять каталог?

Я попробовал «chattr + i DIRNAME», это здорово, но я не могу создавать файлы в DIR после chattr. Что еще нужно, чтобы пользователи не удалили каталог?

root@HOST ~] mkdir test [root@HOST ~] chattr +i test [root@HOST ~] cd test [root@HOST ~/test] touch sth touch: cannot touch `sth': Permission denied [root@HOST ~/test] cd .. [root@HOST ~] chattr -i test [root@HOST ~] cd test [root@HOST ~/test] touch sth [root@HOST ~/test] 

ОБНОВЛЕНИЕ: важно только удаление каталога, поэтому мне все еще нужны файлы, которые нужно удалить в нем

3 Solutions collect form web for “Как запретить пользователям удалять каталог?”

Итак, что не так с простым chown / chmod ?:

 cd /tmp mkdir question sudo chown root:root question [sudo] password for user: chmod 777 ./question touch sth rm sth cd .. rm question -rf rm: cannot remove `question': Operation not permitted 

Хорошо, позвольте мне рассказать вам, что не так: каждый пользователь имеет доступ ко всем файлам в каталоге question из-за 777 разрешений. Лучше

  • создать новый групповой groupadd question
  • mkdir question
  • chown root:question ./question
  • chmod 770 ./question
  • добавьте пользователей, которые должны иметь доступ к файлам в новую группу: usermod -G group user

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

Создайте файл «.protected» и сделайте как root

 chattr +i .protected 

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

 chattr +a 

должен выполнять эту работу. Вы можете создавать файлы внутри, но вы не сможете их удалить.

  • Как удалить дубликаты файлов в каталоге и поддиректорах?
  • Как определить точное время, когда файл был создан и / или изменен?
  • В какую файловую систему включен мой файл?
  • Возможно ли обновлять измененные времена только без копирования файлов при использовании rsync?
  • Команда перечислить в режиме реального времени все действия процесса
  • scp и владелец файла
  • Как вы сравниваете две папки и копируете разницу в третью папку?
  • Изменение имен файлов на основе окружения
  • Является ли чтение файла в UNIX быстрее, чем запись файла?
  • Как хранятся и сохраняются расширенные атрибуты?
  • Я просто «mv» создал 49-гигабайтный каталог для плохого пути к файлу, возможно ли восстановить исходное состояние файлов?
  • Linux и Unix - лучшая ОС в мире.