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
Comments on this entry are closed.
I think correct command for the p.3 in accordance with its subject should be
$ chmod u-rw filename, don’t I?
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
@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
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?
@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
chmod -R a-x,u+X *
this command applyed my vstfd stop please give solution
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”!
thanks for posting chmod command information
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.
What about “STICKY BITS” ??
how to fix this? the terminal says ‘no such file is in the directory’.
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!
thats good
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
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.
Thank u so much for this info…
I find it very useful for beginners
Shouldn’t example 3 be “$ chmod u-rw filename” instead of “$ chmod u-rx filename”?
Hi SathiyaMoorthy
I am trying to use ncftp to use chmod to set permssions on files and folders on a site I have hosted on a Windows Server at GoDaddy
I connect OK but when I enter
chmod a+rwx web.cofig
I get this error
chmod web.config: server said: ‘SITE’: command not understood.
Any idea what the problem is ?
Thanks
Terry Clancy
chmod sticky mod How?
how to chmod a+rx ?
great help
But can you please explain 3rd example
I think it should be
chmod u – rw filename.
I new to AIX, I want to change 800 files system permissions to 750, and the owner:group. How can I do this in a script, all at once?
This is one of the greatest and most clear guides on permissions and the chmod command. Thank you for such a clear guide.
Thank u so much for this info…
I find it very useful for beginners
hi
iam read and observe above all commands but one of the command is wrong in my guess. the no.3. is asking remove read and write but the example explain in command is “u-rx” thhis command using remove in read and execution permission not for remove in write permission and this is also working in permission for write only.so the 3 no command is wrong.
3. Remove permission from a file/directory
Following example removes read and write permission for the user.
$ chmod u-rx filename
its very useful for beginners.