Changing Ownership of Files in Linux

Let’s see how to change file ownership on linux system. In our example we have two files owned by cicnavi user (enter ls -l to show files with long listing).

Two Files

To change the ownership of the files we can use the chown command. This command can only be run by the root user.  Chown command can also change the group ownership as well. For example, let’s say that we want to change the ownership of demo1 to a root user and group, we would enter the command

chown root:root demo1

Sudo Chown

The first root determines the user, and the second determines the group. Note that we had to use sudo in order to get appropriate privileges.

So, the file is now owned by user root and group root. If we to change just the user owner,  we can type just type the user name and then the file. For example, let’s change the user back to cicnavi.

chown cicnavi demo1

Change User Only

If we want to change only the group ownership, we can enter the command without the user, like this:

chown :cicnavi demo1

Change Group Only

Note that for this we use : to indicate that there is no change for user (user section is blank).

To change the ownership of the file recursively throughout the directory tree, we can use the -R option:

chown -R user filename

We can also change just a group ownership using the command chgrp. For example, to change the group of our demo1 file back to root, we can enter:

chgrp root demo1

Chgrp Command

The chgrp command can be run by any user. This is actually how we would give access to files that we own to other users.

Let’s also mention umask command here. umask is what sets the default permissions on a file. Without a umask every file  would be created with the permissions of 666 (read write). Also, every directory would be created with the permission set of 777 (read write execute). Our mask of 002 would set our file permissions to 664 and folder permissions to 775. If we want, we can change the umaks. For example, if we want to set it to 022, we can enter:

umask 0022