command: chmod

Rob

Administrator
Staff member
chmod is a Linux command that will let you "set permissions" (aka, assign who can read/write/execute) on a file.

Usage:
Code:
 chmod permissions file
OR:
Usage:
Code:
 chmod permission1_permission2_permission3 file
When using chmod, you need to be aware that there are three types of Linux users that you are setting permissions for. Therefore, when setting permissions, you are assigning them for "yourself", "your group" and "everyone else" in the world. These users are technically know as:

● Owner
● Group
● World
Therefore, when setting permissions on a file, you will want to assign all three levels of permissions, and not just one user.

Think of the chmod command actually having the following syntax...
chmod owner group world FileName
Now that you understand that you are setting permissions for THREE user levels, you just have to wrap your head around what permissions you are able to set!

There are three types of permissions that Linux allows for each file.

● read
● write
● execute
Putting it all together:
So, in laymen terms, if you wanted a file to be readable by everyone, and writable by only you, you would write the chmod command with the following structure.
COMMAND : OWNER : GROUP : WORLD : PATH
chmod read & write read read FileName
chmod 6 4 4 myDoc.txt
Wait! What are those numbers?!?
Computers like numbers, not words. Sorry. You will have to deal with it. Take a look at the following output of `ls -l`
Code:
[[email protected]]$ ls -l 
-rw-r--r-- 1 gcawood iqnection 382 Dec 19 6:49 myDoc.txt
You will need to convert the word read or write or execute into the numeric equivalent (octal) based on the table below.

● 4 – read (r)
● 2 – write (w)
● 1 – execute (x)
Practical Examples

chmod 400 mydoc.txt – read by owner
chmod 040 mydoc.txt – read by group
chmod 004 mydoc.txt – read by anybody (other)
chmod 200 mydoc.txt – write by owner
chmod 020 mydoc.txt – write by group
chmod 002 mydoc.txt – write by anybody
chmod 100 mydoc.txt – execute by owner
chmod 010 mydoc.txt – execute by group
chmod 001 mydoc.txt – execute by anybody
Wait! I don't get it... there aren't enough permissions to do what I want!
Good call. You need to add up the numbers to get other types of permissions...

So, try wrapping your head around this!!
7 = 4+2+1 (read/write/execute)
6 = 4+2 (read/write)
5 = 4+1 (read/execute)
4 = 4 (read)
3 = 2+1 (write/execute)
2 = 2 (write)
1 = 1 (execute)

chmod 666 mydoc.txt – read/write by anybody! (the devil loves this one!)
chmod 755 mydoc.txt – rwx for owner, rx for group and rx for the world
chmod 777 mydoc.txt – read, write, execute for all! (may not be the best plan in the world...)
Good luck! Hope this helps.
(ps, never set things to 777 unless you have a really good reason to do so.)
 


StarBaseONE2

New Member
This one took me a while to understand well enough to be able to use without having to 'argue' with my machine to achieve the results I desired. LOL

Rob this was a good way of presenting the concept.
 

kenux

New Member
chmod is a Linux command that will let you "set permissions" (aka, assign who can read/write/execute) on a file.

Usage:
Code:
 chmod permissions file
OR:
Usage:
Code:
 chmod permission1_permission2_permission3 file
When using chmod, you need to be aware that there are three types of Linux users that you are setting permissions for. Therefore, when setting permissions, you are assigning them for "yourself", "your group" and "everyone else" in the world. These users are technically know as:



Therefore, when setting permissions on a file, you will want to assign all three levels of permissions, and not just one user.

Think of the chmod command actually having the following syntax...


Now that you understand that you are setting permissions for THREE user levels, you just have to wrap your head around what permissions you are able to set!

There are three types of permissions that Linux allows for each file.



Putting it all together:
So, in laymen terms, if you wanted a file to be readable by everyone, and writable by only you, you would write the chmod command with the following structure.


Wait! What are those numbers?!?
Computers like numbers, not words. Sorry. You will have to deal with it. Take a look at the following output of `ls -l`
Code:
[[email protected]]$ ls -l
-rw-r--r-- 1 gcawood iqnection 382 Dec 19 6:49 myDoc.txt
You will need to convert the word read or write or execute into the numeric equivalent (octal) based on the table below.



Practical Examples



Wait! I don't get it... there aren't enough permissions to do what I want!

Good call. You need to add up the numbers to get other types of permissions...

So, try wrapping your head around this!!
7 = 4+2+1 (read/write/execute)
6 = 4+2 (read/write)
5 = 4+1 (read/execute)
4 = 4 (read)
3 = 2+1 (write/execute)
2 = 2 (write)
1 = 1 (execute)



Good luck! Hope this helps.
(ps, never set things to 777 unless you have a really good reason to do so.)
0=7-7-7
 

mudz

Gold Member
Gold Supporter
One question?
Suppose I've mounted one drive which is also shared by windows file system. Now if I change permissions to one of that file will it have any affect on that file when I use windows? or chmod is only isolated to linux system? Dumb question it is?
o_O
 

Chainzaw

New Member
One question?
Suppose I've mounted one drive which is also shared by windows file system. Now if I change permissions to one of that file will it have any affect on that file when I use windows? or chmod is only isolated to linux system? Dumb question it is?
o_O
Mudz,

It's been a very long time since I ran a dual system, but Windoze system generally give full access as if root under linux, so all should be fine.

But, a simple test can be performed.

In M$ you can create a test document and/or folder with test files copied or filled with gibberish, boot to Linux and disallow all priveledges, then see if the folder and/or files can be modified and saved in the Windows environment.

As stated, I've not run much of any computers in some time, but in my recollection..

Chmod 000 testfile.txt

should remove all permissions.

@kenux shows 0=777 and that may be correct.

I'll have to get back into things.
 

Neelgt

New Member
Hey..
I am using linux for the first time.When i using chmod commnad and give the permission to write in the group it accept that but when i undo that command from write to read mode using 'g-w' it shows "bash: g-w : commnad not found.

It also show when i was using info command for getting infomation of any command.
Pls resolve my issue......
I'm using deepin...
 

igor-ignat

Gold Member
Gold Supporter
chmod is a Linux command that will let you "set permissions" (aka, assign who can read/write/execute) on a file.

Usage:
Code:
 chmod permissions file
OR:
Usage:
Code:
 chmod permission1_permission2_permission3 file
When using chmod, you need to be aware that there are three types of Linux users that you are setting permissions for. Therefore, when setting permissions, you are assigning them for "yourself", "your group" and "everyone else" in the world. These users are technically know as:



Therefore, when setting permissions on a file, you will want to assign all three levels of permissions, and not just one user.

Think of the chmod command actually having the following syntax...


Now that you understand that you are setting permissions for THREE user levels, you just have to wrap your head around what permissions you are able to set!

There are three types of permissions that Linux allows for each file.



Putting it all together:
So, in laymen terms, if you wanted a file to be readable by everyone, and writable by only you, you would write the chmod command with the following structure.


Wait! What are those numbers?!?
Computers like numbers, not words. Sorry. You will have to deal with it. Take a look at the following output of `ls -l`
Code:
[[email protected]]$ ls -l
-rw-r--r-- 1 gcawood iqnection 382 Dec 19 6:49 myDoc.txt
You will need to convert the word read or write or execute into the numeric equivalent (octal) based on the table below.



Practical Examples



Wait! I don't get it... there aren't enough permissions to do what I want!

Good call. You need to add up the numbers to get other types of permissions...

So, try wrapping your head around this!!
7 = 4+2+1 (read/write/execute)
6 = 4+2 (read/write)
5 = 4+1 (read/execute)
4 = 4 (read)
3 = 2+1 (write/execute)
2 = 2 (write)
1 = 1 (execute)



Good luck! Hope this helps.
(ps, never set things to 777 unless you have a really good reason to do so.)
thank you. hope to study more efficiently with your book.
 
  • Like
Reactions: Rob

Rob

Administrator
Staff member
Hey..
I am using linux for the first time.When i using chmod commnad and give the permission to write in the group it accept that but when i undo that command from write to read mode using 'g-w' it shows "bash: g-w : commnad not found.

It also show when i was using info command for getting infomation of any command.
Pls resolve my issue......
I'm using deepin...
Sorry for the late reply - i'm thinking you're not putting 'chmod' before the g-w part.. did you get this sorted out?
 

Staff online

Members online


Latest posts

Top