The chflags utility modifies the file flags of the
listed files as specified by the flags
operand. The flags of a file dictate special
restrictions beyond those enforced by its mode/permissions. Only the superuser
can change the user flags on block and character devices.

Recurse. Where file is a
directory, change the flags of the directory and all the files and
directories in the file hierarchy below it.

Flags are a comma separated list of keywords. The following keywords are
currently defined:

arch set the archived flag (superuser only)
nodump set the nodump flag (owner or superuser only)
sappnd set the system append-only flag (superuser only)
schg set the system immutable flag (superuser only)
uappnd set the user append-only flag (owner or superuser only)
uchg set the user immutable flag (owner or superuser only)

The “arch” flag is for compatibility only, and currently has no
effect.

A file with the “nodump” flag set will by default only be backed
up by dump(8) during
full backups. The -h option of
dump(8) can be used to
alter this.

An immutable file may not be changed, moved, or deleted. An append-only file is
immutable except that data may be appended to it.

The superuser-settable “sappnd” and “schg” flags can
be set at any time, but may only be cleared when the system is running at
security level 0 or -1 (insecure or permanently insecure mode, respectively).
For more information on setting the system security level, see
securelevel(7).

Putting the letters “no” before a flag name causes the flag to be
turned off. For example:

nouchg the immutable bit should be
cleared

The -H, -L, and
-P options are ignored unless the
-R option is specified. In addition, these
options override each other and the command's actions are determined by the
last one specified.