Changing Ownership (chown)
The chown command changes file ownership. It's typically used by administrators to manage file access.
Basic Usage
chown owner filename
chown owner:group filename
Understanding Ownership
Every file has two owners:
- User owner: A single user
- Group owner: A group of users
-rw-r--r-- 1 alice developers 4096 Jan 7 file.txt
│ │
│ └── Group owner
└── User owner
chown Syntax Options
chown user file # Change user only
chown :group file # Change group only
chown user:group file # Change both
chown user: file # User and their default group
Common chown Operations
Change Owner
chown alice file.txt
Change Group
chown :developers file.txt
Change Both
chown alice:developers file.txt
Exercise: Change Ownership
Change the owner of a file:
Recursive Changes
Change ownership of directory and all contents:
chown -R user:group directory/
chown Options
| Option | Description |
|---|---|
-R | Recursive |
-v | Verbose |
-c | Report only changes |
--reference | Copy from another file |
chown vs chmod
| Command | Changes | Example |
|---|---|---|
chmod | Permissions (rwx) | chmod 755 file |
chown | Ownership | chown user:group file |
Both affect who can access files, but differently:
- chmod: What actions are allowed
- chown: Who the file belongs to
Real-World Examples
Web Server Files
chown -R www-data:www-data /var/www/html/
User Home Directory
chown -R alice:alice /home/alice/
Shared Project
chown -R :developers /opt/project/
chmod -R g+w /opt/project/
Permission Requirements
Important: Only root (or sudo) can change file owners. Regular users can only change group to a group they belong to.
# As regular user - may fail
chown root file.txt # Permission denied
# As root/sudo - works
sudo chown root file.txt # Success
Related Command: chgrp
chgrp changes only the group:
chgrp developers file.txt
# Same as: chown :developers file.txt
Key Takeaways
chownchanges user and/or group ownership- Use
chown user:groupfor both at once - Use
-Rfor recursive changes - Usually requires root/sudo privileges
- Different from
chmod(which changes permissions)

