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

Я попробовал «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 

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

  • Включение даты в имя файла
  • scp и владелец файла
  • Как rsync файлы с номером имени файла больше, чем число?
  • Понимание выходного сигнала
  • Список файлов, к которым обращается программа
  • Скрипт для изменения времени изменения файлов и каталогов рекурсивно
  • Перемещение файлов путем чтения их имен файлов в разные каталоги
  • Как удалить файлы с помощью ~?
  • Существуют ли какие-либо утилиты архива, которые могут сохранить атрибут даты, созданный в NTFS-3G?
  • Непоследовательные однократные и двойные щелчки в файловом менеджере GNOME / GTK
  • Как использовать результаты «файла» (Имя приложения: Microsoft Word) для поиска определенной строки?
  • Добавление другого суффикса в конец строки
  • Interesting Posts

    Почему команда `ls -d` печатает только каталог`. '?

    установить многословные отпечатки несвязанных дополнительных строк

    Trick для создания ограниченного пользователя linux. Я могу удаленно управлять независимо от того, где он подключается.

    TightVNC регистрирует второго пользователя в качестве первого пользователя для Oracle Linux (RHEL)

    Терминал: запомнить рабочий каталог

    Как получить дамп всех расширенных атрибутов для файла?

    Systemd ожидает, что сетевой интерфейс будет запущен до запуска службы

    Начать X после автоматического входа в систему

    определить имя интерфейса с помощью perl

    Могу ли я сделать задержку доставки в Thunderbird или Evolution

    FreeBSD 8.1 на MacBook 5,2

    Как найти и перечислить папки с определенным именем папки, содержащие недавно измененные файлы?

    Команда «ip addr» показывает «UP», даже нет адреса, связанного с этим интерфейсом

    Найти дату и время сборки ядра Linux?

    Как узнать, указывают ли два каталога на одно и то же место

    Linux и Unix - лучшая ОС в мире.