xxxxxxxxxx
The three rightmost digits define permissions for the:
file user, the group, and others.
# Permission rwx Binary
7 read, write and execute rwx 111
6 read and write rw- 110
5 read and execute r-x 101
4 read only r-- 100
3 write and execute -wx 011
2 write only -w- 010
1 execute only --x 001
0 none --- 000
xxxxxxxxxx
permission = read(4) + write(2) + execute(1)
===== CHMOD ===== ( change permission for file )
chmod [permissions] file
(u)ser, (g)roup, (o)ther, (a)ll
(r)ead, (w)rite, (e)xecute
(+) add permission, (-) remove permission, (=) set permission
#Examples:
chmod o+rwx file # add rwx for other
chmod o=rw file # set rw for other
chmod og-x file # remove x from other and group
chmod a+r file # everyone can read
# Numeric
chmod 724 file # owner=everything, group=writing, other=reading
first number is for owner of file,
second for group of owner,
third for everyone
===== OTHER =====
ls -l [path]
---------- # file
d--------- # directory
-rwx------ # owner
----rwx--- # group
-------rwx # other
xxxxxxxxxx
Character. Effect on files. Effect on directories
Read permission (first character)
- The file cannot be read. The directory's contents cannot be shown.
r The file can be read. The directory's contents can be shown.
Write permission (second character)
- The file cannot be modified. The directory's contents cannot be modified.
w The file can be modified. The directory's contents can be modified (create new files or directories; rename or delete existing files or directories); requires the execute permission to be also set, otherwise this permission has no effect.
Execute permission (third character)
- The file cannot be executed. The directory cannot be accessed with cd.
x The file can be executed. The directory can be accessed with cd; this is the only permission bit that in practice can be considered to be "inherited" from the ancestor directories, in fact if any directory in the path does not have the x bit set, the final file or directory cannot be accessed either, regardless of its permissions; see path_resolution(7) for more information.
s The setuid bit when found in the user triad; the setgid bit when found in the group triad; it is not found in the others triad; it also implies that x is set.
S Same as s, but x is not set; rare on regular files, and useless on directories.
t The sticky bit; it can only be found in the others triad; it also implies that x is set.
T Same as t, but x is not set; rare on regular files.
xxxxxxxxxx
chmod u=rwx,g=rw,o=rx myfile.txt
Now view the result:
ls -l myfile.txt
-rwxrw-r-x 1 user group 9482 Jan 16 16:29 myfile.txt
//where frist character represent wheather it is directory or file
// 'd' for directory and '-' file
xxxxxxxxxx
Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.
# Example:
sudo chmod g+w public/index.php # allow write for group
sudo chmod g-w public/index.php # remove write for group
sudo chmod a+w public/index.php # allow write for all
sudo chmod o+w public/index.php # allow write for others