Linux 101: Using chmod and chown

Jack Wallen
Feb 18, 2011
Updated • Jan 14, 2013
Linux
|
13

When you use Linux long enough you are going to use the command line. Although nearly every command line trick can be done from a GUI front end now, there are times when the command line is the only route (headless server for example). When you have to go that route, you will be glad to have the fundamentals of the more important Linux commands under your belt. Two very important commands, chmod and chown, deal with permissions and ownership (respectively). With these tools you control who owns and who reads, writes, and executes files and folders on your Linux system. Let's take a look at how to use these commands.

Installation?

Not a bit. By default you will have both chmod and chown installed on your system.

Chmod

The chmod command allows you to change permissions on a file. The basic usage is:

chmod PERMISSIONS FILE

Where PERMISSIONS is either the numeric or the alpha equivalent of the permissions you want to assign and FILE is the file (or folder) you want to effect.

Since the numeric permissions are the easiest to understand (and use) let's look at that method.

Remember, file permissions are in the form:

OWNER | GROUP | All Others

Each of those sections includes:

READ | WRITE | EXECUTE

Each permission (read, write, execute) is represented with the binary representation of the initial letter:

  • r - 4
  • w - 2
  • x - 1

To get the numeric permission you add which permissions you want to use together. So if you want r+w you get 6. If you want r+w+x you get 7. If you want r+x you get 5. If you want only r you get 4. So now, remembering you have to cover permissions for three different users (Owner, Group, All Others), you will need to have a numeric number for each. So if you want Owner and Group to have rwx permission and All Others to only have r permissions, you would have:

774

Now, to change the permission of a particular file to 774 you would issue the command:

chmod 774 FILENAME

Where FILENAME is the name of the file.

Chown

Now let's examine the changing of ownership. This will bite you when you install an application in a directory as one user and need to use it as another. So let's say you have a folder in the /opt directory called APP that belongs to user bethany but user jacob needs to own it instead (of course if they both need access you could just change permissions or create a group for this). To change the ownership of this folder (you will need administrative rights to do this) you would issue a command like:

sudo chown jacob.jacob /opt/APP

The above command would change both ownership and group ownership of the folder (since jacob.jacob was used). If you wanted to leave that folder belonging to the original group issue the command like:

sudo chown jacob /opt/APP

and the original group ownership would remain intact.

Final thoughts

Permissions and ownership on Linux isn't nearly as challenging as you though - even from the command line! Of course you can do these same tasks from within your file manage - if you have a file manager!

Advertisement

Previous Post: «
Next Post: «

Comments

  1. Anonymous said on March 23, 2011 at 2:29 pm
    Reply

    Thanks Jack!! very helpful

  2. Daniel said on February 22, 2011 at 5:35 pm
    Reply

    Hey,

    thanks for the explanations. It’s good to have advise when quick needing the correct command. For those who just wanna use it without knowing or thinking a lot about it: I found a cool tool on this. You give it the rights table and it generates the correct chmod command – for both: absolute and relative settings.
    http://bit.ly/dTj3eJ

    have fun with this. I hopethis helps a lot when hurrying with chmod….

  3. erickjohncuevas said on February 19, 2011 at 5:08 pm
    Reply

    It depends on the user, I myself love the octal way. i find it comfortable and easy to use.

  4. Troy Rose said on February 19, 2011 at 8:24 am
    Reply

    Why even bother remembering the octals of the read write and execute bits?

    Its pointless when the symbolic names are easy and mean you are less likely to make mistakes:

    chmod 774 FILENAME

    becomes:

    chmod o=rwx,g=rwx,o=r

    Much easier, and you dont have to do octal arithmetic.

    1. Jacob said on October 29, 2014 at 5:43 pm
      Reply

      You can convert octals to symbolic and vice versa with this site:
      http://file-permissions.ninja

      it’s let you modify permissions without to do any octal arithmetic at all…

    2. cptomlly said on February 20, 2011 at 8:21 am
      Reply

      I find it deliciously ironic that Troy’s comment saying symbolic names are easier and less error prone actually has an error.

    3. Mr. Obvious said on February 19, 2011 at 11:56 pm
      Reply

      Despite that it is math, you’ll probably use the same few modes over and over (i.e. 755 for executables and directories; 644 for files). Change the last number to zero to block out “others.” I don’t know why anyone would ever use 774 (if it where placed on a directory, others could read but not change into the directory; if it where placed on a file, others couldn’t execute it, but they could read it?).

      I agree with the OP, you should have included a discussion of the symbols both absolute like OP mentioned and relative (i.e. chmod ug+x …). Also, you should have included a discussion of umask so that we can get all the octal math out and in the open.

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.