- Trending Categories
- Data Structure
- Operating System
- C Programming
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to use chmod recursively on Linux?
You might have been in a scenario where you are using a Linux as your main operating system and then you try to create or edit a file and the Linux terminal responds with something like “Permission deny” error. In typical sense, such an error is related to insufficient permissions that your current user is having and can be solved by setting the correct file permissions or changing the owner.
In Linux, the files are controlled through the file permissions, ownership and attributes, which in turn makes sure that only authorized users and processes can access files and directories.
Before understanding how to make the chmod command to run recursively on all the directories and subdirectories, let’s first understand what the chmod command actually means.
Chmod is a linux command that is mainly used to change the access permissions of file system objects. It changes the permissions of each file according to a mode, where mode simply describes the permissions to modify.
chmod [Options]... Mode [,Mode]... file... chmod [Options]... Numeric_Mode file... chmod [Options]... --reference=RFile file...
In the above syntax, the [OPTIONS] placeholder can be replaced with the different flags that can be used with it, some of the most commonly used flags are
-f, --silent, --quiet suppress most error messages -v, --verbose output a diagnostic for every file processed -c, --changes like verbose but report only when a change is made -c, --reference=RFile use RFile's mode instead of MODE values -R, --recursive change files and directories recursively --help display help and exit --version output version information and exit
Now that we know about what the chmod actually does, let’s consider a few examples where we will provide different permissions to the same file.
chmod 777 sample.txt
The above command uses the mode 777 which simply means that anyone can read, write and execute the file.
chmod 020 sample.txt
The above command uses the mode 020 which simply means that only a group can read, write and execute the file.
Now, let’s learn how to run the chmod recursively
chmod -R MODE directory
Consider we have a directory where I want to run chmod recursively on all the files. The directory looks something like this before the command
immukul@192 linux-questions-code % ls -tlr total 960 -rw-r--r-- 1 immukul staff 446966 Sep 23 1998 wget-1.5.3.tar.gz drwxr-xr-x 3 immukul staff 96 Jul 7 17:42 d1 -rwxrwxrwx 1 root staff 106 Jul 8 13:10 sample2.sh drwxr-xr-x 4 immukul staff 128 Jul 8 19:05 d2 -rwxrwxrwx 1 root staff 946 Jul 12 18:45 sample.sh -rwxrwxrwx 1 root staff 718 Jul 12 18:48 sample1.sh
Consider the command shown below
chmod -R 777 .
total 960 -rwxrwxrwx 1 immukul staff 446966 Sep 23 1998 wget-1.5.3.tar.gz drwxrwxrwx 3 immukul staff 96 Jul 7 17:42 d1 -rwxrwxrwx 1 root staff 106 Jul 8 13:10 sample2.sh drwxrwxrwx 4 immukul staff 128 Jul 8 19:05 d2 -rwxrwxrwx 1 root staff 946 Jul 12 18:45 sample.sh -rwxrwxrwx 1 root staff 718 Jul 12 18:48 sample1.sh
- How to Search and Remove Directories Recursively on Linux?
- How to Recursively Search all Files for Strings on a Linux
- How to use the sub process module with pipes on Linux?
- How to use OpenSSH Multiplexer To Speed Up OpenSSH Connections on Linux
- chmod() function in PHP
- How To Use Systemctl On CentOS 7.x or RHEL Linux 7
- How to Install Git on Linux
- How to activate virtualenv on Linux?
- How to use Glob() function to find files recursively in Python?
- How to use diff command in linux
- How to Install C++ Compiler on Linux?
- How to configuring Java Environment on Linux?
- How to Join Several Partitions on Linux
- How to limit network bandwidth on linux
- How to Install Atom 1.6.0 on Linux