112

How can I use the chown command to change the ownership of all a folder's subfolders and files?

TellMeWhy
  • 17,484

6 Answers6

132

From 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.

[...]

  -R, --recursive        operate on files and directories recursively

[...]

So you need to run (probably with sudo):

chown -R USERNAME:GROUPNAME /PATH/TO/FILE

Or, if the group shall be the specified user's primary group (usually same name), you can also omit the GROUPNAME and just give the USERNAME: with a colon (no space before it!). It will be set implicitly:

chown -R USERNAME: /PATH/TO/FILE

To only change the user and leave the group as it is, just specify USERNAME and no group name and no colon:

chown -R USERNAME /PATH/TO/FILE

To only change the group and leave the owner user as it is, just specify :GROUPNAME with a leading colon:

chown -R :GROUPNAME /PATH/TO/FILE
Byte Commander
  • 107,489
26

My username is timo and I did this to take ownership to all my files and folders on home directory (transferred from another account):

~$ sudo chown -R timo /home/timo/*
TellMeWhy
  • 17,484
14
chown -R <username>:<groupname> <folder>

This is how I normally do it, and I usually do this one folder at a time. Doesn't take but a few moments to work through each folder.

Dominique
  • 427
hatterman
  • 2,280
  • 2
  • 22
  • 33
2

I prefer: chown -hR :

This will also change ownership of symlinks instead of just the destination files that the symlinks point to.

1
man chown
chown options user:group files/folders

Not sure why other answers did not cover one dot. : And . are interchangeable, so you can use one dot for instance

chown -R user.group files/folders
bhordupur
  • 640
0

Either get to the terminal display mode as described elsewhere or do a ssh login from another computer. Usually the account is intact and it will be accessible via ssh.

You may also have an account on the same machine without the login loop problem. If you do, then login to that account (assuming it will let you sudo).

Once in, open a terminal and find the directory under which you can see the username directories. i.e. /home/username1 /home/username2

Run ls -l

if any of the user directories is owned by root change it by running:

sudo chown -R username:username /home/username 

This example is based on an architecture where the user directories are under /home/

Run ls -l again to confirm the directory is owned by the user.

This was tested on Ubuntu 20.04

memi
  • 1