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

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

 

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

 

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

 

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

 

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

lsattr test.txt

—————e— test.txt