1. Overview

File ownership and permissions control who can access, change, and execute files and directories. This feature helps in maintaining the system’s integrity and security. Now, when working with files, it’s not uncommon to clone permissions and ownership from one file to another.

In this tutorial, we’ll explore cloning ownership and permissions from another file. To achieve this, we’ll use the chown and chmod commands in the command line.

2. Using the chown Command

In Linux, the chown command helps in changing the ownership of files and directories. So, every file and directory has an owner/user and belongs to a specific group.

To demonstrate, let’s compare two files:

$ ls -l
total 0
-rw-rw-r-- 1 samuel samuel 0 Ago 6 00:35 Contact.txt
-rw-rw-r-- 1 peter  devs 0 Ago 6 00:35 Info.txt

In the above example, the owner of the Contact.txt file is samuel and it belongs to the group samuel. Whereas, the owner of the Info.txt file is peter and it belongs to the devs group.

Next, let’s clone ownership from the Contaxt.txt file:

$ chown --reference=Contact.txt Info.txt

In this example, we clone ownership from the Contact.txt file onto the Info.txt file:

  • –reference=Contaxt.txt – this option specifies the reference file, Contact.txt, whose ownership we want to clone
  • Info.txt – represents the file whose ownership we want to change

Lastly, let’s see if the ownership cloning was successful:

$ ls -l
total 0
-rw-rw-r-- 1 samuel samuel 0 Ago 6 00:35 Contact.txt
-rw-rw-r-- 1 samuel samuel 0 Ago 6 00:35 Info.txt

At this point, we’ve managed to update the owner and group of the Info.txt file to match those of the Contact.txt file.

3. Using the chmod Command

The chmod command allows us to change the permissions of files and directories. In detail, these file permissions, read, write, and execute, determine what actions can be performed on a file by the owner, group, and other users.

To begin, let’s check the file permissions of two different files:

$ ls -l
total 0
-rwxrw-r-- 1 samuel samuel 0 Ago 6 00:35 Contact.txt
-rw-rw-r-- 1 peter  devs 0 Ago 6 00:35 Info.txt

By default, file permissions are grouped into three. To illustrate, let’s explain the permissions of the Contaxt.txt file:

  • rwx – gives the owner samuel read, write and execute permissions
  • rw- – grants read and write permission to the members of the user group samuel
  • r– – specifies that any other users can only read the file

Next, let’s clone permissions from the Contact.txt file onto the Info.txt file:

$ chmod --reference=Contact.txt Info.txt

Here, we also use the –reference option to declare the reference file from which the permissions will be cloned.

Finally, let’s confirm if we’ve succeeded:

$ ls -l
total 0
-rwxrw-r-- 1 samuel samuel 0 Ago 6 00:35 Contact.txt
-rwxrw-r-- 1 peter  devs 0 Ago 6 00:35 Info.txt

From this output, we can see that we’ve managed to clone permissions from the Contact.txt file onto the Info.txt file.

4. Conclusion

In this article, we discussed how to clone ownership and permissions from one file to another. We achieved this by utilizing the chown and chmod commands from the command line.

Comments are open for 30 days after publishing a post. For any issues past this date, use the Contact form on the site.