D Server
เนื้อหาของเรา
- กลับหน้าแรก
- CGI-Perl WebBoard
- Php3 WebBoard
- Developer WebBoard
บริการของเรา
- Free GuestBook
- Free Counter
- Free WebBoard
- Free Stats
- Free JumpBox
- Free E-Mail
ข้อมูลของเรา
- ข่าวประกาศ
- D'Server คืออะไร?
- ทีมงาน D'Server
- ติดต่อลงโฆษณา
- ข้อมูลการติดต่อทีมงาน
- ข้อตกลงการให้บริการ
Bandwidth Support by Internet Thailand
Power by Apache
Power by FreeBSD
chmod 755 มีความหมายยังไง ? มีผลกับเรื่องความปลอดภัยมั๊ย?
chmod 755 ?? ทำไมต้อง 755 ?? แล้ว 755 มีความหมายยังไง ??
อาจจะเคยเห็นหลายๆคนหลายๆที่ บอกว่าเวลาลงโปรแกรม cgi ให้เปลี่ยน mode ไฟล์เป็น 755 คงจะมีหลายคนอยู่นะครับ ที่สงสัยว่าทำไมต้อง 755 บางคนสงสัยต่อไปอีกว่า 755 คืออะไร ก่อนอื่นไหนๆก็เขียนออกมาเป็นบทความแล้ว ไม่อยากให้มันสั้นจนเกินไป จะขอพูดถึง chmod และ permission ในระบบ unix ไปด้วยเลยทีเดียวกันนะครับ

chmod (ย่อมาจาก change mode) เป็นคำสั่งที่ใช้ในการเปลี่ยน permission ของแฟ้มข้อมูลในระบบ unix ซึ่ง permission นี้ก็คือข้อมูลเล็กๆที่จะบอก ให้ระบบทราบเกี่ยวกับ สิทธิ์ต่างๆของแฟ้มนั้น กับผู้ใช้งานในระบบ โดยที่ ระบบจะมองผู้ใช้งานเป็น 3 กลุ่ม คือ
  • owner คือเจ้าของแฟ้มข้อมูล แฟ้มนั้นเอง
  • group คือผู้ที่อยู่ใน group เดียวกับเจ้าของแฟ้มข้อมูลนั้นๆ
  • other คือผู้ใช้ทั่วไปใครก็ได้ ไม่จำเป็นต้องเป็นเจ้าของ หรืออยู่กลุ่มเดียวกับเจ้าของแฟ้มข้อมูลนั้นๆ

    โดยในระบบ unix จะมี permission ที่ในเบื้องต้นที่ควรรู้และเกี่ยวกับ การพัฒนาโปรแกรมในเน็ตอยู่ 4 อย่างคือ d, r, w และ x โดยที่
  • d คือ directory หมายถึงว่าแฟ้มนั้นคือ directory (เหมือนกับ folder ในระบบ windows)
  • r คือ read หมายถึง สิทธิในการอ่านข้อมูลจากแฟ้มข้อมูลนั้น
  • w คือ write หมายถึง สิทธิในการเขียนข้อมูลในแฟ้มข้อมูล รวมไปถึงการลบด้วย
  • x คือ execute หมายถึง สิทธิในการสั่งให้แฟ้มข้อมูลนั้นทำงาน (execute)

    เพื่อให้มองเห็นภาพ เรามาลองจัดกลุ่มของ rwx กันตามที่ระบบ unix มันมอง กันดูนะครับ โดยจะจัดเรียงตามกลุ่มของผู้ใช้งาน และในแต่ละกลุ่มจะมีสิทธิ ทั้ง r, w และ x (จะเห็นว่าไม่มี d มาเกี่ยวข้องเลยนะคับ) ดังนี้ครับผม

    rwx rwx rwx

    นี่หมายถึงว่า ผู้ใช้ทุกกลุ่ม จะมีสิทธิ ในการ อ่าน เขียน และ execute แฟ้มข้อมูล นั้นๆทุกคน ให้เรามองแต่ละกลุ่มเป็นเลขฐาน 2 นะครับ อันไหนที่มีสิทธิในแต่ละ ตำแหน่งคือ 1 เพราะฉนั้น rwx คือ 7 ในที่นี้ เราจะเรียกว่าแฟ้มข้อมูล แฟ้มนี้มี permission (mode, attribute หรืออื่นๆ แล้วแต่จะเรียก) เป็น 7 7 7 นะครับ (คือ 111 กับ 111 และ 111 เรียงกันนั่นเอง)

    ถ้าหากว่าเราต้องการให้มีเฉพาะเราเท่านั้นที่จะ มีสิทธิในการเขียน แฟ้มข้อมูลนั้น permission ก็จะเปลี่ยนไปเป็นดังนี้ 755 (นั่นแน่ มาแล้วเจ้า 755) ซึ่งจะหมายถึง rwx r-x r-x (ไม่มีตัว w ในอีกสองกลุ่มสุดท้าย) ซึ่งจะหมายความว่า จะมีแต่ผู้ที่เป็นเจ้าของแฟ้มข้อมูล นั้นเท่านั้นที่สามารถเขียนข้อมูล หรือลบ แฟ้มข้อมูล นั้นๆได้ แต่ในเรื่องการอ่าน หรือการเรียกทำงาน (execute) แล้วนั้นทุกคนจะมีสิทธิ เท่ากันหมด
  • เข้าเรื่องกันดีกว่า

    ก็จะประมาณนี้นะครับ สำหรับเรื่อง permission ทีนี้มาพูดถึงตัวเลข 755 กันอีก ทำไม cgi script มันต้องกำหนดเป็น 755 หละ หรือว่าต้อง 755 เพราะว่าเรา ต้องการให้ทุกๆคนในโลกนี้สามารถเรียกใช้ cgi script ของเราได้ เราเลยต้อง กำหนดเป็น 755 จริงๆ ไม่เกี่ยวกันเลยครับ 755 ไม่ได้หมายถึงว่าใครๆในโลกจะ เรียกใช้โปรแกรมเราได้ จริงๆแล้วคือ เฉพาะผู้ใช้ในระบบ (server หรือ host แล้วแต่ จะเรียก) นั้นเท่านั้น ที่เรียกใช้ได้

    ที่มักจะกำหนดเป็น 755 เพราะในหลายๆ hosting นั้น user ที่เป็นเจ้าของ www daemon process (อธิบายคร่าวๆคือ user ที่รัน www server) จะถูกกำหนด เป็น nobody:nobody (คือ user nobody และ group nobody) ซึ่งไม่ใช่ user เดียวกันกับที่แฟ้มข้อมูลโปรแกรมของเรามี นั่นหมายถึงว่าเราเพียงแค่เปิดโอกาส ให้ user ที่เป็นเจ้าของ www daemon process เรียกใช้โปรแกรมเราได้ เท่านั้นเอง

    แล้วกำหนดเป็นอย่างอื่นได้หรือเปล่า? เช่น 700 711 744 คำตอบก็คือ แล้วแต่ระบบ นะครับ บาง hosting จะกำหนดให้ user ที่เป็นเจ้าของ www daemon process ในแต่ละ virtual host (ว่าง่ายๆคือลูกค้าแต่ละคน) นั้นต่างกันได้ นั่นหมายถึงว่าเขา สามารถจะเป็น user เดียวกับที่เป็นเจ้าของแฟ้ม cgi script ของเราได้ เราก็ไม่จำเป็น ที่จะต้องกำหนดให้ ผู้ใช้อื่นๆในระบบสามารถอ่าน หรือเรียกใช้ cgi script ของเราได้ นั่นเอง

    แล้วทำไมเราต้องมาคุยเรื่องนี้กันให้ยุ่งยากหรอครับ ใครเมื่อกำหนดมันเป็น 755 ก็ไม่ เห็นจะมีปัญหาอะไรเลยนี่ โปรแกรมเราก็เรียกใช้ได้ตามปกติ? คำตอบคือ มันอาจจะ มีผลกระทบ ได้ในเรื่องของระบบความปลอดภัย หรือเรื่องความลับ เช่นถ้าเรากำหนด เป็น 755 ซะ นั่นหมายถึง ลูกค้าคนอื่นที่มีสิทธิในระบบใน hosting ที่เราใช้อยู่อาจจะ telnet เข้ามา server และเปิดดู source code ของโปรแกรมเราได้ !!!! หรืออาจจะ ไม่ใช่ลูกค้า แต่เป็น hacker หละ เห็นผลในทันทีใช่ไหมครับ ถ้าเขาเห็น source code และสามารถหาช่องโหว่ได้ ก็คงจะเกิดความเสียหายแน่นอน เป็นเรื่องน่าคิดอยู่เหมือนกัน ใช่ไหมครับ <ยิ้ม> จะดีกว่าไหมครับ ถ้าสามารถกำหนดเป็น 700 แล้วโปรแกรม ก็ยังสามารถทำงานได้อยู่เช่นเดิม ฝากไว้เป็นการบ้านนะครับ

    ถ้าคิดว่า แล้วใครจะมารู้ได้ไงว่า โปรแกรมของเราเก็บไว้ที่ไหนใน server ไม่ใช่เรื่อง ยากเลยครับ ขอแค่รู้ข้อมูลว่า url ที่เรียกใช้โปรแกรมนั้นๆคืออะไร และรู้เรื่องในระบบ อีกนิดหน่อยว่า path ของลูกค้าโดยทั่วไปแล้วนั้นคืออะไร ใครๆก็ทราบได้จริงไหมครับ และถ้าเขารู้ว่าเราต้องกำหนด cgi script เป็น 755 โปรแกรมถึงจะทำงานได้ นั่นก็หมายความ ว่าเขาก็สามารถที่จะนำเอา source code ของโปรแกรมของคุณไปได้ไม่ยากเลย

    กลับเนื้อหาหลัก.. ->



    [ สนับสนุนช่องทางข้อมูลโดย Internet Thailand | สงวนลิขสิทธิ์ (c) Dream Group 2542 | ข้อตกลงการบริการ | ทีมงาน Dream Group | แนะนำติชม มาที่ webmonster@dserver.org ]