chown
chown
The chown
command in Unix and Linux is used to change the ownership of files and directories. This includes both the user and group ownership. Changing ownership is essential for managing access control and permissions in multi-user environments.
Basic Usage
The basic syntax for chown
is:
chown [options] [owner][:group] file...
owner
: The name or UID of the new owner.group
: The name or GID of the new group. Thegroup
can be omitted, changed, or specified alone by using a colon:
(e.g.,:group
).file
: The file or directory whose ownership you want to change. Multiple files or directories can be specified.
Examples
Change Owner of a File
To change the owner of file.txt
to the user alice
:
chown alice file.txt
Change Owner and Group of a File
To change the owner of file.txt
to alice
and the group to developers
:
chown alice:developers file.txt
Change Only the Group of a File
To change only the group of file.txt
to staff
:
chown :staff file.txt
Change Ownership of a Directory Recursively
To change the owner of all files and subdirectories within mydir
to bob
and the group to admins
:
chown -R bob:admins mydir
Options
-c
: Report only when a change is made.-f
: Suppress most error messages.-v
: Output a diagnostic for every file processed.-R
: Operate recursively, changing the ownership of all files and directories within the specified directory.--reference=RFILE
: Use RFILE's owner and group rather than specifying OWNER:GROUP values.
Practical Use Cases
Access Control: Assign files to appropriate users and groups to manage access permissions.
Project Collaboration: Change ownership of project files to a specific user and group that includes all collaborators.
System Administration: Adjust ownership for system files and directories to align with security policies.
Examples with Explanations
Changing Ownership Verbosely
To change the owner and group of document.txt
to jane
and staff
and see detailed output:
chown -v jane:staff document.txt
The
-v
option provides a verbose output, showing what changes are made.
Suppressing Error Messages
To change the owner of logs/
to admin
and suppress error messages:
chown -f admin logs/
The
-f
option suppresses most error messages, useful in scripts where you don't want error output.
Recursive Change in Ownership
To recursively change the owner of all items within /var/www
to www-data
:
chown -R www-data:www-data /var/www
The
-R
option ensures that the ownership of all files and subdirectories within/var/www
is changed.
Summary
The chown
command is an essential tool for managing ownership of files and directories in Unix and Linux systems. It allows for efficient control over access permissions, enabling better management of multi-user environments. Mastery of chown
and its options helps in maintaining proper access control and ensuring that files and directories have the correct ownership for security and collaboration purposes.
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".
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Full documentation <https://www.gnu.org/software/coreutils/chown>
or available locally via: info '(coreutils) chown invocation'
Last updated