Запретить удалять или изменять файл всем включая суперпользователя root или запретить изменение время доступа. Это и много другого позволяет делать команда chattr.
chattr — изменяет атрибуты файлов на файловых системах ext2fs, ext3, ext4 для отдельного файла или директории:
- chattr +a — только добавление данных (append-only), удаление и переименование запрещено;
- chattr +i — запрещено удаление, изменение или переименование (immutable);
- chattr +A — запретить сохранение данных о каждом обращении к файлу (no atime)
- chattr +S — синхронное изменение всех данных на диск, без кэширования;
- chattr +c — файл будет храниться на диске в сжатом виде (нужен отдельный патч для ядра);
- chattr +s — после удаления файла, место на диске забивается нулями (внешний патч);
- chattr +u — резервирование данных файла после удаления (внешний патч);
Некоторые атрибуты может назначить только суперпользователь (root).
Параметр «+» устанавливает атрибут, а параметр «-» атрибут снимает.
Пример использования:
sudo chattr +i -RVf /var/www/ubuntu-desktop.ru
Запрещено удаление, изменение или переименование для всех каталогов и их содержимого.
- -R рекурсивно изменять атрибуты каталогов и их содержимого. Все найденные символические ссылки будут игнорироваться.
- -V выводит более полную выводимую информацию и версию программы chattr.
- -f выводит сообщения об ошибках.
sudo chattr +i /var/www/ubuntu-desktop.ru/.htaccess
Запрещено удаление, изменение или переименование для файла .htaccess.
sudo chattr -i /var/www/ubuntu-desktop.ru/.htaccess
Снятие атрибута chattr для файла .htaccess.
Справка: man chattr