วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2551

การใช้คำสั่ง chmod

คัดลอกมาจาก http://www.leksound.net/forum/index.php?PHPSESSID=a3f8a723562adb2cf7cc25850e1c8fa1&topic=12515.msg58694

chmod เป็นการกำหนดสิทธิ์การเข้าถึงไฟล์

สำหรับท่านที่ทำการติดตั้ง PHP-Nuke บน *NIX หลายท่าน
อาจจะมีปัญหาเรื่องการตั้งค่าเหล่านี้พอสมควร

เพราะหลาย modules จะมีขั้นตอนนึงที่บอกว่า ให้ต้องทำการ chmod
ถ้าหากไม่ทำก็ไม่สามารถติดตั้ง หรือใช้งาน modules เหล่านั้นได้

แต่สำหรับระบบ windows จะไม่มีเรื่อง permissions อันนี้ครับ
ดังนั้นผู้ที่ใช้ระบบ windows ก็ข้ามในส่วนนี้ได้เลย

drwxr-xr-x 2 webadmin admin 4096 Oct 24 23:29 programs
-rw-r--r-- 1 webadmin admin 20729 Oct 24 23:29 readme-tpf.html
drwxr-xr-x 2 webadmin admin 4096 Oct 24 23:22 search
-rw-r--r-- 1 webadmin admin 6129 Oct 24 23:29 sections.html.en
-rw-r--r-- 1 webadmin admin 6245 Oct 24 23:29 sections.html.html


รูปแบบคือ -RWXRWXRWX

อาจจะมี d หรือ l หรือ - นำหน้าอีกตัวนึง (ตัวนี้เราจะไม่กล่าวถึงนะครับ)

d บ่งบอกว่าเป็น directory

l บ่งบอกว่าเป็นlink file ที่เกิดจากคำสั่ง ln

- บ่งบอกว่าเป็นไฟล์


สิทธิ์มีอยู่ 3 อย่างคือ RWX

R=read W=write X=execute

สิทธิ์จะแบ่งเป็น 3 กลุ่มผู้ใช้คือ

3 ตัวแรก => สิทธิ์ของเจ้าของ file

3 ตัวถัดมา => สิทธิ์ของสมาชิกในกลุ่มเดียวกันกะเจ้าของ file

3 ตัวสุดท้าย => สิทธิ์ของคนอื่นๆใครก็ได้ หมายรวมถึงผ่านระบบ inetnet ด้วย

การคำนวณค่าตัวเลขสำหรับการกำหนดสิทธิ์

จากตัวอย่างที่ให้ดูข้างบน จะพบว่า เขาจะแสดงออกมาในรูปตัวอักษร RWX
แต่ในการติดตั้ง PHP-Nuke หรือ Applications อื่นๆ ที่ต้องทำการ chmod

จะพบว่า เขาบอกมาในรูปตัวเลขทั้งนั้น เช่น 777, 666

ตัวเลขที่เขาบอกมา เป็นผลรวมของแต่ละกลุ่ม โดยที่

RWX = 4 + 2+ 1 = 7

ที่มาคือ
R = 2 ยกกำลัง 2 = 4
W = 2 ยกกำลัง 1 = 2
X = 2 ยำกำลัง 0 = 1

สรุปว่า คือเลขฐาน 2 นั่นแหละครับ

ดังนั้น
666 = rw-rw-rw- => ผู้ใช้ทั้ง 3 กลุ่มมีสิทธิ์ read write ทุกคน
755 = rwxr-xr-x => เจ้าของทำได้ทุกอย่าง คนอื่นๆมีสิทธิ์อ่านและเรียกใช้งานเท่านั้น
777 = rwxrwxrwx => ผู้ใช้ทั้ง 3 กลุ่มมีสิทธิ์ทุกอย่างใน file ซึ่งหมายถึง ลบและแก้ไขได้ด้วย
700 = rwx------ => เฉพาะเจ้าของ file เท่านั้น ที่มีสิทธิ์ทุกอย่าง

รูปแบบการใช้คำสั่ง (*NIX)

# chmod [options] mode file...

เช่น chmod -R 777 /www/phpnuke/modules/coppermine/gallery

หมายเหตุ
ใช้คำสั่ง # man chmod เพื่อดู options ที่สามารถใช้ได้
options เช่น -R คือการรวมถึง subdir ย่อยทั้งหมดด้วย

หรือจะใช้ผ่านทางโปรแกรมพวก ftp ทั้งหลายก็ได้ครับ

ซึ่งจะมีคำสั่ง chmod ให้อยู่แล้ว
เลือก file หรือ dir ที่ต้องการ แล้ว chmod ได้เลย

ถ้าจะเอาคำสั่งแบบยากๆ งงๆอีกนิดนึง
ก็สามารถทำได้นะครับ เช่น

# chmod go-rwx /www/phpnuke/modules/coppermine/gallery

อันนี้จะมีค่าเท่ากับ chmod 700 ครับ งงมั๊ยครับ?Huh??

ความหมายคือ ให้เอาสิทธิ์ rwx ออกจาก g(group=คนในกลุ่มเดียวกัน) และ o(others=คนอื่นๆ)
ดังนั้นก็จะเหลือเป็น rwx------ ซึ่งก็เท่ากับ 700 นั่นเอง
ก็เป็นไปตามสิทธิ์ของ 3 กลุ่มผู้ใช้นั่นแหละครับ
จะมีตัว u (user) ซึ่งหมายถึงเจ้าของไฟล์
และ a (all) หมายถึงทุกคนเลย

เช่น
# chmod ugo+rwx filename => chmod 777 นั่นเอง

หรือจะเป็น
# chmod a+rwx filename ก็ได้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น