Skip to main content

chown command

chown - change file owner and group

The chown command in Linux is used to change the ownership of files and directories, assigning them to a specific user and/or group. It’s essential for managing access rights and permissions in a multi-user system.

Note: Changing ownership typically requires root privileges (use sudo).

Usage: chown [OPTION]... [OWNER]:[GROUP]] FILE...

  • OWNER: The new owner (username or UID).
  • GROUP: The new group (group name or GID, optional).
  • FILE: The target file(s) or directory(s).
  • OPTION: Flags to modify behavior (e.g., -R for recursive).

Common Options Summary

OptionDescription
-RRecursive (apply to directory contents)
-vVerbose output
--referenceCopy ownership from another file
-cReport changes only (like -v but quieter)

Examples

  • Basic Usage

    Change the owner of a file to a specific user.

    sudo chown alice file.txt
    • Sets alice as the owner of file.txt.
    • Check with:
      ls -l file.txt
      • Output (example): -rw-r--r-- 1 alice users 0 Apr 1 10:00 file.txt.
  • Changing Group Ownership

    Specify a group with a colon (:) after the user.

    sudo chown alice:developers file.txt
    • Sets owner to alice and group to developers.

    Group Only:

    Use a colon before the group to change only the group:

    sudo chown :developers file.txt
    • Keeps the current owner but sets the group to developers.
  • Recursive Changes

    Use -R to change ownership of a directory and its contents.

    sudo chown -R alice:developers /var/www
    • Sets alice as owner and developers as group for /var/www and everything inside.
  • Using Numeric IDs

    Specify user ID (UID) and group ID (GID) instead of names.

    sudo chown 1000:1001 file.txt
    • Sets UID 1000 and GID 1001 (find with id username).
  • Verbose Output

    Use -v to see what changes are made.

    sudo chown -v alice file.txt
    • Output: changed ownership of 'file.txt' from bob to alice.
  • Copying Ownership

    Use --reference to copy ownership from another file.

    sudo chown --reference=template.txt file.txt
    • Sets file.txt’s owner and group to match template.txt.
$ chown --help
Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
or: chown [OPTION]... --reference=RFILE FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP.
With --reference, change the owner and group of each FILE to those of RFILE.

-c, --changes like verbose but report only when a change is made
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--dereference affect the referent of each symbolic link (this is
the default), rather than the symbolic link itself
-h, --no-dereference affect symbolic links instead of any referenced file
(useful only on systems that can change the
ownership of a symlink)
--from=CURRENT_OWNER:CURRENT_GROUP
change the owner and/or group of each file only if
its current owner and/or group match those specified
here. Either may be omitted, in which case a match
is not required for the omitted attribute
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's owner and group rather than
specifying OWNER:GROUP values
-R, --recursive operate on files and directories recursively

The following options modify how a hierarchy is traversed when the -R
option is also specified. If more than one is specified, only the final
one takes effect.

-H if a command line argument is a symbolic link
to a directory, traverse it
-L traverse every symbolic link to a directory
encountered
-P do not traverse any symbolic links (default)

--help display this help and exit
--version output version information and exit

Owner is unchanged if missing. Group is unchanged if missing, but changed
to login group if implied by a ':' following a symbolic OWNER.
OWNER and GROUP may be numeric as well as symbolic.

Examples:
chown root /u Change the owner of /u to "root".
chown root:staff /u Likewise, but also change its group to "staff".
chown -hR root /u Change the owner of /u and subfiles to "root".

For more details, check the manual with man chown