linux command

chmod

Linux Command – chmod ใช้ในการเปลี่ยนสิทธิ์ในการอ่าน, เขียน และ execute file หรือ folder แบ่งเป็นสิทธิ์ของ file owner, group owner, other user ซึ่งคำสั่งจะถูกแปลงจากเลขฐาน 8 ในการระบุสิทธิ์แต่ชนิด

 

คำสั่ง

เริ่มแรก file test มี permission ที่ owner user สามารถอ่านและเขียนได้แต่ execute ไม่ได้ ส่วน user ใน group เดียวกับ root ทำได้แค่อ่าน รวมถึง user อื่นๆในระบบก็ทำได้แค่อ่านเช่นกัน

$ ls -ltr test
-rw-r--r-- 1 root root 0 May 7 00:22 test
drwxr-xr-x 2 root root 4096 May  7 00:22 testdir
$ ls -ltr testdir
total 0
-rw-r--r-- 1 root root 0 May 7 00:22 test1
-rw-r--r-- 1 root root 0 May 7 00:22 test2

 

1. ทำการเปลี่ยนแปลงสิทธิ์ของ file

chmod <สิทธิ์เลขฐาน8> <file>

$ chmod 555 test
$ ls -ltr test
-r-xr-xr-x 1 root root 0 May 7 00:22 test
$ chmod 755 test
$ ls -ltr test
-rwxr-xr-x 1 root root 0 May 7 00:22 test
$ chmod 777 test
$ ls -ltr test
-rwxrwxrwx 1 root root 0 May 7 00:22 test
$ chmod 700 test
$ ls -ltr test
-rwx------ 1 root root 0 May 7 00:22 test

 

2. ทำการเปลี่ยนแปลงสิทธิ์ของทั้ง directory

chmod -R <สิทธิ์เลขฐาน8> <directory>

$ chmod -R 777 testdir
$ ls -ltr
drwxrwxrwx 2 root root 4096 May 7 00:22 testdir
$ ls -ltr testdir
total 0
-rwxrwxrwx 1 root root 0 May 7 00:22 test1
-rwxrwxrwx 1 root root 0 May 7 00:22 test2

 

โครงสร้างคำสั่ง

 chmod [OPTION]... MODE[,MODE]... FILE...
 chmod [OPTION]... OCTAL-MODE FILE...
 chmod [OPTION]... --reference=RFILE FILE...

 

รายละเอียด

เป็นคำสั่งใช้ในการเปลี่ยนสิทธิ์ในการเข้าถึง file แบ่งดังนี้  drwxrwxrwx ยกเว้น user root ที่มีสิทธิ์เข้าถึง file หรือ directory ไหนก็ได้ เพราะถือเป็น super user ของ ระบบ

  • – คือ ไม่มีสิทธิ์
  • r คือ read
  • w คือ write
  • x คือ execute
  • d คือ directory
  • l คือ symbolic link

ส่วนกลุ่มของ user แบ่งดังนี้

  • bit 1 คือ -,d,l  หมายถึงชนิดของข้อมูล file(-), directory(d), l (link)
  • bit 2-4 คือ rwx สำหรับบอกสิทธิ์ของ file owner
  • bit 5-7 คือ rwx สำหรับบอกสิทธิ์ของ group owner
  • bit 8-10 คือ rwx สำหรับบอกสิทธิ์ของ user อื่นๆ

วิธีการแปลง bit เพื่อใช้ในการ chmod คือ string “-” มีค่าเท่ากับ 0 นอกจากนั้น มีค่าเท่ากับ 1 และให้นับตั้งแต่ bit ที่ 2 เป็นต้นไปเช่น

-rwxr-xr-x แปลงเป็นเป็นเลขฐาน 2 ได้ 111101101 และแปลงเป็นเลขฐาน 8 ได้ 755

 

Option

 -c, --changes
 like verbose but report only when a change is made

 -f, --silent, --quiet
 suppress most error messages

 -v, --verbose
 output a diagnostic for every file processed

 --no-preserve-root
 do not treat '/' specially (the default)

 --preserve-root
 fail to operate recursively on '/'

 --reference=RFILE
 use RFILE's mode instead of MODE values

 -R, --recursive
 change files and directories recursively

 --help display this help and exit

 --version
 output version information and exit

 Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.

 

กลุ่มคำสั่ง

chmod

 

Reference:

คำสั่ง Unix – Linux Command

Linux, Unix

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com

2 Thoughts to “chmod – Linux Command คำสั่งเปลี่ยนสิทธิ์ในการเข้าถึง file”

  1. […] locatedb(5), updatedb(1), xargs(1), chmod(1), fnmatch(3), regex(7), stat(2), lstat(2), ls(1), printf(3), strftime(3), […]

  2. […] permission ก่อนด้วยคำสั่ง chmod เพื่อให้เราสามารถ execute shell script […]

Leave a Reply