7 Chmod Command Examples for Beginners

by SathiyaMoorthy on June 8, 2010

Earlier we discussed about how to use octal permission bits with chmod. In this article, let us review how to use symbolic representation with chmod.

Following are the symbolic representation of three different roles:

  • u is for user,
  • g is for group,
  • and o is for others.

Following are the symbolic representation of three different permissions:

  • r is for read permission,
  • w is for write permission,
  • x is for execute permission.

Following are few examples on how to use the symbolic representation on chmod.

1. Add single permission to a file/directory

Changing permission to a single set. + symbol means adding permission. For example, do the following to give execute permission for the user irrespective of anything else:

$ chmod u+x filename

2. Add multiple permission to a file/directory

Use comma to separate the multiple permission sets as shown below.

$ chmod u+r,g+x filename

3. Remove permission from a file/directory

Following example removes read and write permission for the user.

$ chmod u-rx filename

4. Change permission for all roles on a file/directory

Following example assigns execute privilege to user, group and others (basically anybody can execute this file).

$ chmod a+x filename

5. Make permission for a file same as another file (using reference)

If you want to change a file permission same as another file, use the reference option as shown below. In this example, file2′s permission will be set exactly same as file1′s permission.

$ chmod --reference=file1 file2

6. Apply the permission to all the files under a directory recursively

Use option -R to change the permission recursively as shown below.

$ chmod -R 755 directory-name/

7. Change execute permission only on the directories (files are not affected)

On a particular directory if you have multiple sub-directories and files, the following command will assign execute permission only to all the sub-directories in the current directory (not the files in the current directory).

$ chmod u+X *

Note: If the files has execute permission already for either the group or others, the above command will assign the execute permission to the user


Linux Sysadmin Course Linux provides several powerful administrative tools and utilities which will help you to manage your systems effectively. If you don’t know what these tools are and how to use them, you could be spending lot of time trying to perform even the basic administrative tasks. The focus of this course is to help you understand system administration tools, which will help you to become an effective Linux system administrator.
Get the Linux Sysadmin Course Now!

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

{ 16 comments… read them below or add one }

1 Egor June 8, 2010 at 3:32 am

I think correct command for the p.3 in accordance with its subject should be
$ chmod u-rw filename, don’t I?

2 nardi June 8, 2010 at 5:59 am

The last one is most handy! Can’t even remember, how many times I tried to remove exec permision from files copyed from M$ systems but not affect directories.
former solution:
for f in `ls -R` ; do [ ! -d "$f" ] && chmod a-x “$f” ; done
and now:
chmod -R a-x,u+X *

big thx

3 rbz June 8, 2010 at 7:20 am

@nardi:
While the first six examples are rather trivial I agree for the last one. I’ve been looking for this solution for months.

chmod -R a-x,u+X * – such a beauty!

thx

4 Alex June 12, 2010 at 12:51 am

The last one is truly great. I’ve always used “find -type d -exec …” for this. I’m a little confused about your note, though. Why would it care about the group permissions?

5 nardi June 13, 2010 at 1:26 pm

@Alex
The note is about regular files, that the +X rule is not only affecting directories. See man chmod or try it yourself by hand.

This will set the exec rights:
nardi@kub1x ~/test $ ll file
-rw-r-xr– 1 nardi nardi 56 Jun 13 21:06 file*
nardi@kub1x ~/test $ chmod a+X file
nardi@kub1x ~/test $ ll file
-rwxr-xr-x 1 nardi nardi 56 Jun 13 21:06 file*

This won’t set anything, because regular file “file” is neither a directory nor has any exec bit on.
nardi@kub1x ~/test $ ll file
-rw-r–r– 1 nardi nardi 56 Jun 13 21:06 file
nardi@kub1x ~/test $ chmod u+X file
nardi@kub1x ~/test $ ll file
-rw-r–r– 1 nardi nardi 56 Jun 13 21:06 file

6 john August 30, 2011 at 7:32 am

chmod -R a-x,u+X *

this command applyed my vstfd stop please give solution

7 Claudia February 22, 2012 at 5:11 am

I used to work with linux command in the University and after a pause of few years… it brought me back to ‘beginers mode’ when I needed to use chmod.

I was looking for some sites where I can find a comprehensive explanation with few examples. I could benefit a lot from this guide and a BIG “THANK YOU”!

8 prabhakar March 24, 2012 at 12:18 pm

thanks for posting chmod command information

9 Hal February 15, 2013 at 2:12 am

Hey! Thanks for the examples,

I have read thousand article about chmod. Everybody writes what chmod does and Which file permission what does..Cool! But,

Noone writes where I have to set those codes…To be able to change file permission exp:
I will use this $ chmod u+r,g+x filename.

Where do I have to add this?

Thanks alot!
Regards.

10 Rohit July 19, 2013 at 3:44 am

What about “STICKY BITS” ??

11 jose August 13, 2013 at 8:51 am

how to fix this? the terminal says ‘no such file is in the directory’.

12 ram August 19, 2013 at 8:29 am

i was changing file permission of a certain file named “hostname” with a file attribute of r-x r-x rx. I went to that file location since it was located in a folder directory of /bin. when I use the chmod it says “no file name” but I am already inside /bin where hostname is located. any help please!

13 julijuli October 29, 2013 at 9:42 am

thats good

14 Varun Jain December 4, 2013 at 10:11 pm

The beauty of Linux file security is chmod. It allow all user to different permission.
Simply:
Read: 4
Write: 2
Execute: 1
First character for : User
Second for : Group
and Third for : All
For example User wants to only read file only for user then:
chmod 400
easy job!!
Love File Permission

15 Mitch December 23, 2013 at 12:15 pm

Yes, simple binary. RWX 4,2,1. Any combination for owner, group, all. Here are some very common chmod examples.
755 – Can’t execute without read. So owner gets all rights and all others can execute and read.
644 – Non-executable file that the owner can write to and all others can read.
666 Read/Write by all, inherently evil.

16 Karthik Srigaddhe March 20, 2014 at 12:55 am

Thank u so much for this info…

I find it very useful for beginners

Leave a Comment

Previous post:

Next post: