FreeBSD - это очень гибкая операционная система, которая нередко используется в качестве сетевых шлюзов. С помощью различных инструментов, входящих в состав ОС, можно без труда выполнять различные операции с файлами. К примеру, утилита chflags позволяет устанавливать определенные разрешения на папки или файлы.
Чтобы устанавливать или удалять флаги, необходимо иметь права суперпользователя.
Установка защиты от записи
Синтаксис команды:
1 | chflags schg /tmp/file.dat |
Теперь попробуем удалить файл или изменить его содержимое с помощью текстового редактора:
1 | rm -f /tmp/file.dat |
Результат:
1 | rm: /tmp/file.dat: Operation not permitted |
Теперь пользователю с root-доступом не разрешено изменять или удалять содержимое файлы. Данная команда довольно полезна при защите таких важных файлов, как /etc/passwd, /etc/master.passwd и т.д.
Проверка статуса защиты файла
1 | ls -lo /tmp/file.dat |
Результат:
1 | -rw-r--r-- 1 root wheel schg 15 Jun 18 17:36 /tmp/file.dat |
Снятие защиты с файла
1 | chflags noschg /tmp/file.dat |
Кроме того, утилита chflags имеет множество других полезных параметров:
- arch, archived – установка флага "архивный" (только администратор)
- opaque – установка флага "прозрачный" (только администратор или владелец)
- nodump – установка флага "nodump" (только администратор или владелец)
- sappnd, sappend – установка флага system append-only (только администратор)
- schg, schange, simmutable – установка флага system immutable (только администратор)
- uappnd, uappend – установка флага append-only (только администратор)
- uchg, uchange, uimmutable – установка флага user immutable (только администратор или владелец)
- hidden – установка флага "скрыть" (скрытие в графическом интерфейсе)