> For the complete documentation index, see [llms.txt](https://handbook.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handbook.bsdcn.org/di-16-zhang-an-quan/16.6.-wen-jian-biao-zhi-wei.md).

# 16.6.文件标志

文件标志能让用户在基本的权限和所有权之外，为文件和目录附加额外的元数据或属性。通过这些标志，用户能控制文件的各种行为和特性，而无需创建特殊目录或使用扩展属性。

文件标志可用于实现不同的目标，例如防止文件删除、使文件只能追加内容、同步文件更新等。FreeBSD 中常用的文件标志包括“immutable”标志，它防止修改或删除文件，以及“append-only”标志，它只能在文件末尾添加数据，但不能修改或删除。

这些标志可通过 FreeBSD 中的 [chflags(1)](https://man.freebsd.org/cgi/man.cgi?query=chflags\&sektion=1\&format=html) 命令管理，为管理员和用户提供了对文件和目录行为和特性的更大控制权。需要注意的是，文件标志通常由 `root` 或具有适当权限的用户管理，因为它们会影响文件的访问和操作。一些标志可供文件所有者使用，具体内容可参考 [chflags(1)](https://man.freebsd.org/cgi/man.cgi?query=chflags\&sektion=1\&format=html)。

## 16.6.1. 操作文件标志

在此示例中，假设用户的主目录中有一个名为 **\~/important.txt** 的文件，用户希望保护此文件免受删除。

执行以下命令设置 `schg` 文件标志：

```sh
# chflags schg ~/important.txt
```

当任何用户，包括 `root` 用户，尝试删除该文件时，系统会显示以下消息：

```sh
rm: important.txt: Operation not permitted
```

要删除该文件，必须先删除文件的标志，可通过执行以下命令：

```sh
# chflags noschg ~/important.txt
```

支持的文件标志及其功能列表可在 [chflags(1)](https://man.freebsd.org/cgi/man.cgi?query=chflags\&sektion=1\&format=html) 中找到。
