chattr +i и chattr -i, запрет изменения файлов


chattr +i с указанием имени файла добавляет запрет на его изменение пользователем. Запрет снимается командой chattr -i.

Утилита chattr используется для тонких настоек прав доступа, в дополнение к chown и chmod.


chattr +i и chattr -i, запрет изменения файлов в Linux


Создадим от имени непривелегированного пользователя текстовый файл, который будем использовать для демонстрации

touch test.txt



На него установлены стандартные права, их не меняем

ls -la | grep test

-rw-r—r— 1 admin admin 0 Mar 10 20:30 test.txt



В файл можно свободно добавлять любое содержимое, например цифру 1.

echo "1" > test.txt


Теперь добавим блокировку. От имени пользователя root или через sudo

sudo chattr +i test.txt


Права, владелец и группа владельца файла не изменились

ls -la | grep test

-rw-r—r— 1 admin admin 2 Mar 10 20:31 test.txt



При этом вносить какие-либо коррективы сейчас нельзя. Также нельзя добавлять новое содержимое. Попытка сделать это завершится ошибкой.

echo "2" > test.txt

bash: test.txt: Operation not permitted



Проверить статус можно так

lsattr test.txt

—-i———e— test.txt



Также вывод приведен на скриншоте:

chattr +i


Поскольку добавил блокировку суперпользователь — снять ее может только он. Для этого та же команда для файла выполняется с ключем -i. Возможность редактирования после этого появится.

Без снятия блокировки редактировать файл не сможет в том числе суперпользователь.



chattr используют чтобы ограничить доступ к каким-либо важным файлам или возможностям системы. Блокировать так можно бинарные файлы php или sendmail, это сделает невозможным для пользователя без root доступа снять блокировку.

Также chattr не так очевиден как простая смена прав что имеет значение когда целью является защита от несанкционированного доступа.


Статус после снятия блокировки

lsattr test.txt

—————e— test.txt



Вывод lsattr после снятия блокировки для файла:

lsattr после chattr -i


Читайте также про SUID и SGID биты. В статье есть описание принципов выставления прав на файлы и каталоги в Linux.

Сказать спасибо