- Change folder permissions and ownership
- 9 Answers 9
- File Permissions in Linux – How to Use the chmod Command
- What are File Permissions in Linux?
- Actions you can perform on a file
- What is the chmod Command?
- How to Remove Permissions from a File in Linux
- Another Way to Handle File Permissions in Linux
- Conclusion
Change folder permissions and ownership
I would like the user to have full rights on this folder (as well as all sub-directories and files in it):
currently owned by root. I have found numerous posts (in this forum and elsewhere) on how to do this for files but I can’t find a way to do it for whole folders.
9 Answers 9
Use chown to change ownership and chmod to change rights.
As Paweł Karpiński said, use the -R option to apply the rights for all files inside of a directory too.
Note that both these commands just work for directories too. The -R option makes them also change the permissions for all files and directories inside of the directory.
sudo chown -R username:group directory
will change ownership (both user and group) of all files and directories inside of directory and directory itself.
sudo chown username:group directory
will only change the permission of the folder directory but will leave the files and folders inside the directory alone.
As enzotib mentioned, you need to use sudo to change the ownership from root to yourself.
Note that if you use chown : (Note the left-out group), it will use the default group for that user.
If you want to change only the group, you can use:
BEWARE of recursively taking ownership of ANY directory. Think before you leap. Don’t be chown copypastin’ from the internet, kids. Just because you want to install a node package and it won’t let you, don’t sudo chown -R just because the fist hit from googling the error message says to. Reckless sudo chown -R -ing can kill your OS.
It needs to be said that using the -R option only applies to files and folders that exist in the directory already. It does NOT apply to future creations. For example, if you create another folder or file as root within the folder you’ve already changed permissions on, you will have the same experiences you’re having now until you chmod\chown them again.
Make the current user own everything inside the folder (and the folder itself):
very helpful for newbies (like me) when don’t know what to type in ‘usergroup’ for sudo chown
If you prefer, this can be done with a GUI as well. You will need to open Nautilus as root to do so. Press Alt + F2 to access the «Run Applications» dialog and enter gksu nautilus
Next, browse to and right click on the folder you would like to modify. Then, select «Properties» from the context menu. You can now select the user or group that you would like to be the «Owner» of the folder as well as the permissions you would like to grant them. Finally, press «Apply Permissions to Enclosed Files» to apply the changes recursively.
Though it seems this does not always work for some operations in a deep folder tree. If it does not work use the appropriate terminal command.
File Permissions in Linux – How to Use the chmod Command
Arunachalam B
Just as with other operating systems, multiple users can create user accounts and share the same machine running Linux OS.
But whenever different users share a system, problems of privacy can easily arise. The first user may not wish the next user to view, edit, or delete their files, for example.
The Linux Terminal possesses some superpowers when it comes to handling file permissions. You can grant or revoke permissions for every file and directory from your Linux Terminal.
What are File Permissions in Linux?
File permissions control which actions can be performed by which users. Read, Write, and Execute are the three actions possible for every file.
Users are classified under three broad categories: Normal users, Groups, and Others. Linux allows users to set permissions at a very granular level. You can secure your file or directory in every possible location of a file system.
There are three important commands you’ll use when managing file permissions:
Among these, chmod is one of the most important commands. We’ll discuss the chmod command in this tutorial, and I’ll get into the others in upcoming articles.
Let’s deep dive into the chmod command 🏊.
Actions you can perform on a file
Before we proceed further, I want to make sure you’re clear about how the Read, Write, and Execute actions of a file work. Read and write are pretty are self-explanatory – they determine whether a user can read or write to a file.
But, what’s an executable file?
A file is said to be executable if it has a sequence of instructions to achieve something. A good example is scripting files (Shell Scripts).
What is the chmod Command?
chmod is a command that lets you change the permissions of a file or directory to all types of users.
Here’s the syntax of the chmod command:
Now it is executable. He stared at me as if I was a hacker 😂. But really, it’s a pretty simple and basic concept.
How to Remove Permissions from a File in Linux
I work with my colleague Divad on lots of projects, and he likes to try to fool me. We work together on many hobby projects and we often write shell scripts for quick deployment.
Whenever he writes shell scripts, he always removes all the permissions from the file and pushes the changes to the remote repo. So every time I have to grant permissions using the above commands for whatever action I have to do.
Let’s have a quick look at the command he uses to remove file permissions.
Here we have a file named install.sh which has all permissions (Read, Write, Execute). Let’s remove the execute permission for this script file.
You’ll not be able to execute this file now. Trying so will give you an error as shown in the above screenshot.
Let’s remove the read permission from the file.
The same applies to removing write permission from the file:
You can achieve all the above together using the below command:
But, did you know that I can create another directory inside locked_directory named dir1 and read the files and folders in dir1 ?
Then what’s the purpose of the command we just ran before? Removing the read permission on the parent should remove the same on child directories too, right?
Well. That’s the exact thing I told you earlier. Linux manages a very granular level of file permissions.
If you want to apply the permissions to the parent directory and all its child directories, you need to pass an exclusive flag with the chmod command.
That flag is -R . It basically means applying the same permissions recursively to all sub-directories (child directories). So this permission will apply to the end child of a file/directory.
Here’s the syntax for that:
From the above screenshot, you can see that trying to view the child directory files has failed after removing the read permission recursively from the parent directory.
Another Way to Handle File Permissions in Linux
Alternatively, you can use Octal representation to control the file permissions.
We can use numbers to represent file permissions (the method most commonly used to set permissions). When you change permissions using the Octal mode, you represent permissions for each triplet using a number (4, 2, 1, or combination of 4, 2, and 1).
Let’s see the syntax for using octal mode:
Look at the first part of the output ( -rwxrwxrwx ) from the above screenshot. Let’s explore what it means:
The first character indicates the type of input.
- «-» indicates a file
- «d» indicates a directory
- «i» indicates a link (a symlink, which is a shortcut to a file/directory)
You group the next set of letters, at a maximum of 3 for each group. These groups represents corresponding permissions for user, group, and others.
Conclusion
In this article, you have learned about handling basic file and folder permissions.
I hope you enjoyed reading this tutorial. I have one request to all: give it a try on your own with some complicated scenarios like having permutations and combinations of permissions 😂. It’ll definitely be helpful in your entire career.
Subscribe to my newsletter by visiting my site and also have a look at the consolidated list of all my blogs.