chown Cheatsheet
Quick reference for changing file and directory ownership with chown in Linux
chown changes file and directory ownership in Linux. This cheatsheet covers user and group changes, recursive ownership updates, common patterns, and safe usage.
Basic Syntax
Use these core command forms for chown.
| Command | Description |
|---|---|
chown USER FILE | Change file owner |
chown USER:GROUP FILE | Change owner and group |
chown :GROUP FILE | Change group only |
chown USER: FILE | Change owner and set group to user’s login group |
chown --reference=REF FILE | Copy owner and group from another file |
Common Examples
Common ownership changes for files and directories.
| Command | Description |
|---|---|
chown root file.txt | Set owner to root |
chown www-data:www-data /var/www/index.html | Set owner and group for a web file |
sudo chown $USER:$USER file.txt | Return ownership to current user |
chown :developers app.log | Change group only |
chown --reference=source.txt target.txt | Match ownership of another file |
Recursive Changes
Apply ownership updates to full directory trees.
| Command | Description |
|---|---|
chown -R USER:GROUP /path | Recursively change owner and group |
chown -R USER /path | Recursively change owner only |
chown -R :GROUP /path | Recursively change group only |
chown -R -h USER:GROUP /path | Change symlink ownership itself during recursion |
chown -R --from=OLDUSER:OLDGROUP NEWUSER:NEWGROUP /path | Change only matching current ownership |
Symlinks and Traversal
Control how chown treats symbolic links.
| Command | Description |
|---|---|
chown USER:GROUP symlink | Change target by default |
chown -h USER:GROUP symlink | Change symlink itself (not target) |
chown -R -H USER:GROUP /path | Follow symlink command-line args to directories |
chown -R -L USER:GROUP /path | Follow all directory symlinks |
chown -R -P USER:GROUP /path | Never follow symlinks (default) |
Safe Patterns
Use these patterns to avoid ownership mistakes.
| Command | Description |
|---|---|
chown --from=root root:root /path/file | Change only if current owner matches |
find /path -user olduser -exec chown newuser {} + | Target only files owned by one user |
find /path -group oldgroup -exec chown :newgroup {} + | Target only one group |
ls -l /path/file | Verify ownership before and after changes |
id username | Confirm user and group names exist |
Common Errors
Quick checks when ownership changes fail.
| Issue | Check |
|---|---|
Operation not permitted | You need root privileges; run with sudo |
invalid user | Verify user exists with getent passwd username |
invalid group | Verify group exists with getent group groupname |
| Changes did not apply recursively | Confirm -R was used |
Access still denied after chown | Check permission bits with ls -l and ACLs |
Related Guides
Use these guides for full ownership and permissions workflows.
| Guide | Description |
|---|---|
Chown Command in Linux | Full chown guide with examples |
chgrp Command in Linux | Change file group ownership |
How to Change File Permissions in Linux (chmod command) | Update permission bits |
Understanding Linux File Permissions | Ownership and permission model |
How to List Groups in Linux | Check group membership and IDs |