How to Make Recursive Chown Work Easily in 2022?

recursive chown

Today, I will brief you about recursive chown in detail!

What is Chown?

The chown command can modify the user and group ownership of a given directory or file. All files in Linux are associated with a group or owner, and the group members have full access to them.

Recursive Chown on Linux

Recursive chown
Bash Terminal UI (Linux)

The simplest way to do that is to execute the chown recursive command using the “-R” option. It will recursively create new paths and modify the names of the files that belong to it.

See the command below:

$ chown -R <owner> <folder_1> <folder_2> ... <folder_n>

EXAMPLE: To modify the owner of directories and files in the home directory of a particular user, you would need to execute a command.

$ chown -R user /home/user

After successfully executing chown, the command will recursively modify the permissions of the files and directories.

Recursive Chown Hidden Files

You need to suffix to recursively chown hidden files on your PC.[^.]* to obtain every hidden file /home/user

$ chown -R /home/user/.[^.]*

How to Change the Group Recursive Chown on Linux?

To change the permissions and group ownership of the directories and files, execute chown with the “-R” option.

$ chown -R <user>:<group> <folder_1> <folder_2> ... <folder_n>

How to Change the Recursive Chown Ownership on Linux?

You can easily do it by using the -R command to recursively operate all directories and files under the given directory.

Using Simple Recursive Chown Commands

$ chown -R USER:GROUP DIRECTORY

Note – If the directory has figurative connections, then you must add -h option to it:

$ chown -hR USER:GROUP DIRECTORY

-H and -L can also be used while recursive chown command replacing the directory ownership. If the argument passed to the -H option is a symbolic link, then the -L option will traverse the directory.

These commands are executed to recursively modify the permissions of the files stored on our system.

Using a Reference File (reference=ref_file)

If the file is a symbolic link, then the user and group ownership of the target file will be the same using the “reference=ref_file” option. The option also specifies the group and user ownership of the given file.

The command for the reference file is as follows:

chown --reference=REF_FILE FILE

The above command will copy the owner data from file2 to file1.

Is Recursive chown slow?

It takes a long time for any chown command (including recursive chown) to run through a s3fs(simple storage filesystems)mount when there are many directories and many files in it.

If the chown command is recursive, then the webserver would need to access the files/directories for at least a day (24 hours) or more than that.

Recursive Chown to Change the Ownership of File (Mac OS X)

The command line is more advanced than the graphical interface in most cases. However, it can also be used for tasks requiring more advanced processing.

Follow the below steps to change the ownership of a file in Mac OS X:

  • Open up Terminal on your MacBook.
  • Type the following command in the bash window of your MacBook:

chown [username] [filename]

To change the ownership of a file, use the following command as an example (tools-pond.txt):

Example: chown Bob tools-pond.txt

  • If you’re trying to modify a system file or another user file that you don’t have access to, you can always proceed with sudo to do so.

Example: sudo chown bob ~/Desktop/tools-pond.txt

Sometimes, you will encounter a file that has been misappropriated or lost. This is typically not required to change the file’s group.

The file’s group is usually divided into general user files and administrative level user files. These two groups are typically used to access the various features of the Mac OS X.

Regardless of the method you use, I would always prefer you launch the Terminal and use chown to adjust the file ownership. It is mostly a matter of choice, though I have never been a big fan of the Get Info panels.

Chown Recursive Current Directory

You can use the following alias to expand the directory where the current directory is located but not the contents of the individual files and folders:

chown username:groupname *

You could also do the following command to set the permissions on all of the directory’s subfolders.

chown -R username:groupname

The following style will help you recursively change the permissions of all the files and folders in a directory:

chown -R username:groupname *

Chown Recursive using Wildcard

For instance, if you want to change the owner of a group of files using wildcards, you may wish to enter the letter ‘c’ with its first character.

sudo chown toolspond c*.*

Chown Recursive using Python

The files and directories lists are always relative to the root. Joining the directories and the dirs will get the whole path of the files and directories you want to work with.

To recursively your desired chown using the Python way, then you must look at the example encountered via reference:

import os  
path = "/tmp/foo"  
for root, dirs, files in os.walk(path):  
  for momo in dirs:  
    os.chown(os.path.join(root, momo), 502, 20)
  for momo in files:
    os.chown(os.path.join(root, momo), 502, 20)

It is claimed by the website that the setting for the directory permissions seems to work fine, but when applied to the files, chown fails.

How to Chown Recursive in Ansible?

To recursively chown and set the desired directory and file (settings) permissions, you may want to try out the following command in Ansible:

file: dest=/foo/bar/somedir owner=root group=apache mode=0775 recurse=yes

The above command will set all the current directories to 755 and files to 644 using recursive chown.

Be vigilant while using Recursive Chown – WARNING!

Running commands like chown, chmod, or rm are final when executed.

To avoid getting damaged, execute only the necessary commands to operate correctly on your system. Due to the nature of the commands used in Ubuntu/Linux Systems, Windows OS, or even Mac OS, you must avoid running them that will harm your system. The chown command recursively changed the permissions of the files stored on our system.

If possible, divide the command into smaller pieces to ensure that it will not cause any harm.

For specific commands, if you encounter errors, divide the command into smaller pieces so that you can avoid accidentally executing it.

FAQs Related to Recursive Chown

What interface is used when executing chown?

Is it possible to undo the recursive chown executions?

There’s no such thing as undo for Linux operating systems.

What makes any chown recursive?

The answer to your question is the “-R” command-line option. For people who don’t know what Recursive chown is, Recursive means that the operation will recursively perform all files in a given directory and all directories within that given directory. chown -R [owner]:[group] [directory-name-or-path]

Conclusion

I am concluding that the command chown is relatively easy to use. Chown is a command-line utility that enables you to modify the user and group ownership of a file.

I am hoping that you, most probably, would’ve found this article about Recursive Chown beneficial.

If you are still facing this issue and have any queries, you can reach out to us via the comment section below, and we’d be delighted to help you with the same.

If you find this article to help you find the Recursive Chown, then do share it, and you may also Check out our daily blog posts.

Till the next time, Keep reading and learning through Toolspond…

Leave a Comment

Your email address will not be published.

Scroll to Top