Запрет редактирования файла Linux

В Linux есть несколько способов запретить редактирование файла. Вот основные методы:

1. Изменение прав доступа (chmod) — самый простой способ

Убрать право на запись для всех:
bash
Copy
chmod a-w файл.txt
Только для владельца:
bash
Copy
chmod u-w файл.txt
Проверить:
bash
Copy
ls -l файл.txt
# Должно быть: -r--r--r-- (или похожее, без 'w')

2. Атрибут неизменяемости (chattr) — надёжный способ

Даже root не сможет изменить файл без снятия атрибута:
bash
Copy
# Запретить любые изменения (только root может ставить/снимать)
sudo chattr +i файл.txt

# Проверить атрибуты
lsattr файл.txt
# Должно быть: ----i--------e------- файл.txt

# Снять защиту
sudo chattr -i файл.txt

3. Смена владельца на другого пользователя

bash
Copy
# Сделать root владельцем (обычный пользователь не сможет редактировать)
sudo chown root:root файл.txt
chmod 644 файл.txt

Сравнение методов

Table
МетодЗащита отЛегко снять?Требует root?
chmod a-wОбычных пользователейДа (владельцем)Нет
chattr +iВсех, включая rootНет (только root)Да
chown rootНе-root пользователейНет (только root)Да

Полезные команды для проверки

bash
Copy
# Посмотреть права
ls -l файл.txt

# Посмотреть расширенные атрибуты
lsattr файл.txt

# Проверить, кто может что делать
namei -l /путь/к/файлу.txt
Рекомендация: Для надёжной защиты используйте chattr +i (требует root). Для простых случаев достаточно chmod a-w.
Категория: Заметки
Дата создания: 09.04.2026 07:23:34