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

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

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

  • Обмен двумя файлами в bash
  • Измените файл без создания другого файла
  • Как получить последние N файлов в каталоге?
  • Замените номера в файле1 соответствующей строкой в ​​файле2
  • sh-скрипт, содержащий элемент perl, не производит такой же вывод через crontab как ручное выполнение
  • Как найти файлы с длинной первой строкой?
  • Как Linux знает тип файла, с которым он имеет дело?
  • Обертка более высокого уровня для entr или inotifywait
  • Директива Sudo для чтения файла журнала
  • Один вкладыш для замены содержимого файла
  • Преобразование файла с целыми числами, написанными в ascii, в двоичный файл целых чисел
  • Interesting Posts

    Что делает эта команда?

    Найдите слово в предложении с Bourne Shell (sh)

    биос, загрузчик, запуск ядра и драйвер экрана

    Как узнать каталог по умолчанию для окна GNU?

    Архитектура ядра GNU Linux

    Что это за таинственный процесс под названием «proc» в моем списке процессов

    извлекать блоки текста из XML-файла

    Отключите некоторые нажатия клавиш операционной системы и действия мыши на Cinnamon

    Apache 2.4 SSL Config – сервер отклоняет запросы с HTTP 400

    Как отключить и повторно включить Java, когда захочу?

    Как избежать отключения некоторых USB-устройств, когда машина приостановлена

    Проблема с управлением почтовым сервером с помощью Postfix + Dovecot + RainLoop

    Как разбить большой файл .iso на несколько DVD-дисков с помощью инструментов командной строки?

    как записывать всех, кто входит в мои Linux-машины, и записывать их

    Как автоматически «Запустить в терминале» для скрипта в CentOS linux

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