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.
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. Thegroupcan 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.
To change the owner of file.txt to the user alice:
chown alice file.txtTo change the owner of file.txt to alice and the group to developers:
chown alice:developers file.txtTo change only the group of file.txt to staff:
chown :staff file.txtTo change the owner of all files and subdirectories within mydir to bob and the group to admins:
chown -R bob:admins mydir-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.
- 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.
To change the owner and group of document.txt to jane and staff and see detailed output:
chown -v jane:staff document.txt- The
-voption provides a verbose output, showing what changes are made.
To change the owner of logs/ to admin and suppress error messages:
chown -f admin logs/- The
-foption suppresses most error messages, useful in scripts where you don't want error output.
To recursively change the owner of all items within /var/www to www-data:
chown -R www-data:www-data /var/www- The
-Roption ensures that the ownership of all files and subdirectories within/var/wwwis changed.
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.
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'