CHFLAGS(1) | General Commands Manual | CHFLAGS(1)

# NAME

`chflags` — change file flags

# SYNOPSIS

`chflags` | [`-h`] [`-R` [`-H` | `-L` | `-P`]] flags file ...

# DESCRIPTION

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.

You can use ls `-lo` to see the flags of existing files.

The options are as follows:

`-H`
  If the `-R` option is also specified, symbolic links on the command line are followed. Symbolic links encountered in the tree traversal are not followed.
`-h`
  Treat symbolic links like other files: modify links instead of following them. The `-h` and `-R` options are mutually exclusive.
`-L`
  If the `-R` option is also specified, all symbolic links are followed.
`-P`
  If the `-R` option is also specified, no symbolic links are followed.
`-R`
  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.

# EXIT STATUS

The `chflags` utility exits 0 on success, and >0 if an error occurs.

# SEE ALSO

ls(1), chflags(2), stat(2), fts_open(3), securelevel(7), symlink(7), dump(8)

# HISTORY

The `chflags` command first appeared in 4.4BSD.

September 2, 2019 | Debian