Как заблокировать файл от удаления и изменения в Linux

Если вы когда-либо работали с конфиденциальными файлами в Linux, вы, возможно, хотели предотвратить случайное переименование или удаление файлов другими людьми (или даже самим собой). К счастью, Linux предоставляет несколько методов «блокировки» файла, гарантируя, что он останется в безопасности от нежелательных изменений.

В этом руководстве мы покажем вам, как заблокировать файл, чтобы предотвратить его переименование или удаление, используя простые команды и инструменты, доступные в Linux. Также мы рассмотрим пример, демонстрирующий каждый метод.

Предположим, у нас есть файл /home/user/important.txt и мы хотим защитить его от переименования или удаления.

Метод 1: Использование µµ0µµ для создания неизменяемого файла

Один из самых простых и эффективных способов защитить файл от переименования или удаления – использовать команду chattr, которая изменяет атрибуты файлов в Linux.

Сначала проверим атрибуты important.txt с помощью команды lsattr, которая выводит список атрибутов файлов и каталогов:

lsattr /home/user/important.txt

Если файл не заблокирован, вы не увидите ничего или только - в выводе.

Чтобы сделать файл неизменяемым (не подлежащим переименованию или удалению), выполните следующую команду:

sudo chattr +i /home/user/important.txt
lsattr /home/user/important.txt

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

Попытка переименовать или удалить файл теперь не удастся.

mv /home/user/important.txt /home/user/important_backup.txt

Аналогично, если вы попытаетесь удалить файл.

rm /home/user/important.txt

Вы получите ошибку «Операция не разрешена».

Чтобы снять неизменяемость и разрешить изменения в файле, используйте:

sudo chattr -i /home/user/important.txt

Теперь вы можете переименовать или удалить файл как обычно.

Метод 2: Использование разрешений на файлы для ограничения удаления

Еще один способ предотвратить удаление файла – изменить его разрешения с помощью команды chmod, которая устанавливает разрешения, делающие файл нечитаемым или недоступным для других пользователей.

Чтобы запретить всем (включая вас самих) удалять или изменять файл, используйте:

chmod a-w /home/user/important.txt

Проверить права доступа к файлам можно с помощью:

ls -l /home/user/important.txt

Вы должны увидеть что-то вроде этого, где разрешение w (запись) было удалено, что означает, что никто не может изменять или удалять этот файл.

Для того чтобы разрешить себе удалить или изменить файл снова:

chmod +w /home/user/important.txt

Метод 3: Использование chown для изменения прав собственности

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

sudo chown yourusername:yourgroup /home/user/important.txt

Замените yourusername и yourgroup своими реальными именем пользователя и группой.

Теперь вы можете проверить владельца и группу файлов:

ls -l /home/user/important.txt

Вы должны увидеть что-то вроде:

-r--r--r-- 1 yourusername yourgroup 0 Feb 3 10:00 /home/user/important.txt

Теперь только вы можете изменять или удалять этот файл.

Заключение

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

Рассмотренные нами методы – использование chattr, чтобы сделать файл неизменяемым, настройка прав доступа к файлу и изменение прав собственности на файл – просты в использовании и могут обеспечить необходимую безопасность.