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
Option | Description |
---|---|
-R | Recursive (apply to directory contents) |
-v | Verbose output |
--reference | Copy ownership from another file |
-c | Report 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 offile.txt
. - Check with:
ls -l file.txt
- Output (example):
-rw-r--r-- 1 alice users 0 Apr 1 10:00 file.txt
.
- Output (example):
- Sets
-
Changing Group Ownership
Specify a group with a colon (
:
) after the user.sudo chown alice:developers file.txt
- Sets owner to
alice
and group todevelopers
.
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
.
- Sets owner to
-
Recursive Changes
Use
-R
to change ownership of a directory and its contents.sudo chown -R alice:developers /var/www
- Sets
alice
as owner anddevelopers
as group for/var/www
and everything inside.
- Sets
-
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
).
- Sets UID 1000 and GID 1001 (find with
-
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
.
- Output:
-
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 matchtemplate.txt
.
- Sets
To get help related to the chown
command use --help
option
$ 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