วันเสาร์ที่ ๗ มิถุนายน พ.ศ. ๒๕๕๑

CHMOD คืออะไร

เคยสงสัยหรือเปล่า ว่าทำไม CHMOD 644 CHMOD 755 CHMOD 777

นายโต้จะช่วยบอกให้ครับว่า chmod คืออะไร

Chmod มันย่อมาจาก change mode
Chmod คือการกำหนดหรือเปลี่ยนแปลงสิทธิในการจัดการกับแฟ้มหรือเปลี่ยนสิทธิ์ในการเข้าถึงไฟ ล์ พูดง่ายๆก้อคือ การ chmod ทำเพื่อเป็นการเซ็ตค่า permission สำหรับไฟล์ ว่าเราจะให้มันทำอะไรได้บ้าง เช่น chomd 755 คือ ไฟล์นี้เจ้าของสามารถทำได้ทุกอย่าง แต่ผู้ใช้ที่อยู่ในกลุ่มและผู้ใช้ทั่วไป สามารถ อ่านและ run ไฟล์นี้ได้เท่านั้น chmod 777 กำหนดให้ทั้ง 3 กลุ่ม เข้าถึงแฟ้มได้เต็มที่ 3 กลุ่ม
คือ
1. owner เจ้าของไฟล์
2. group ผู้ใช้ที่อยู่ในกลุ่มผู้ใช้เดียวกับเจ้าของไฟล์
3. other ผู้ใช้ทั่วไป เช่น ผู้ใช้งาน internet ที่เรียกใช้เว็บไซท์นั้น


CHMOD คืออะไร ก็คือค่า Permission หรือธิบาย ง่ายๆ สไตล์ นายกระดานดำ คือ ค่าของความมีสิทธิ์ในการเข้าถึงและใช้งาน File หรือ Directory นั้น ๆ ซึ่งจะมีค่าต่าง ๆ แบ่งเป็นตัวเลข 3 หลัก เช่น 644, 755, 777 เป็นต้น ในความหมายของเลขแต่ละหลักทั้ง 3 หลัก จะมีความหมายดังนี้

Execute คือ การสั่งให้ทำงาน Write คือ การเขียนFile หรือ Directory Read คือ การอ่าน File หรือ Directory
เลขในหลักแรก -> เจ้าของไฟล์/directory (Owner)

ตัวเลขในหลัแรก จะแสดงถึงสิทธิ์ในการเข้าถึงไฟล์ของผู้เป็นเจ้าของไฟล์ หรือ Dir นั้น ๆ ถ้า ตัวเลขหลักแรกเป็นเลข
4 จะหมายความว่า เจ้าของ (Owner) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน เพียงอย่างเดียว แต่ไม่มีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น
6 จะหมายความว่า เจ้าของ (Owner) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ในการเขียนไฟล์นั้นเพียงอย่างเดียว แต่ไม่มีสิทธิ์อ่านไฟล์นั้น (4+2)
7 จะหมายความว่า เจ้าของ (Owner) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น (4+2+1)


เลขในหลักที่สอง -> ผู้ใช้กลุ่มเดียวกับเจ้าของไฟล์/directory (Group)

ตัวเลขในหลัแรก จะแสดงถึงสิทธิ์ในการเข้าถึงไฟล์ของผู้เป็นเจ้าของไฟล์ หรือ Dir นั้น ๆ ถ้า ตัวเลขหลักแรกเป็นเลข
4 จะหมายความว่า ผู้ใช้ในกลุ่มเดียวกับเจ้าของ (Group) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน เพียงอย่างเดียว แต่ไม่มีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น
6 จะหมายความว่า ผู้ใช้ในกลุ่มเดียวกับเจ้าของ (Group)ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ในการเขียนไฟล์นั้นเพียงอย่างเดียว แต่ไม่มีสิทธิ์อ่านไฟล์นั้น (4+2)
7 จะหมายความว่า ผู้ใช้ในกลุ่มเดียวกับเจ้าของ (Group) ไฟล์นั้น มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น (4+2+1)
(ดูค่าตามตาราง ประกอบ)

เลขในหลักที่สาม -> ผู้ใช้ในอื่น ๆ (Others)

ตัวเลขในหลัแรก จะแสดงถึงสิทธิ์ในการเข้าถึงไฟล์ของผู้เป็นเจ้าของไฟล์ หรือ Dir นั้น ๆ ถ้า ตัวเลขหลักแรกเป็นเลข
4 จะหมายความว่า ผู้ใช้ในอื่น ๆ มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน เพียงอย่างเดียว แต่ไม่มีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น
6 จะหมายความว่า ผู้ใช้ในอื่น ๆ มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ในการเขียนไฟล์นั้นเพียงอย่างเดียว แต่ไม่มีสิทธิ์อ่านไฟล์นั้น (4+2)
7 จะหมายความว่า ผู้ใช้ในอื่น ๆ มีสิทธิ์ในการสั่งให้ไฟล์นั้นทำงาน และมีสิทธิ์ เขียน หรือ อ่าน ไฟล์นั้น (4+2+1)
(ดูค่าตามตาราง ประกอบ)

ตัวอย่างเลข 777 จะหมายความว่า ผู้ใช้ในทุกกลุ่ม ไม่ว่าจะเป็นเจ้าของไฟล์ / กลุ่มเดียวกับเจ้าของ / ผู้ใช้อื่น ๆ ทุกกลุ่มที่กล่าวมา มีสิทธิ์ในการกระทำทุกสิ่งกับไฟล์ที่มีค่า CHMOD เป็น 777 เป็นต้น

ตัวอย่างการใช้งานเช่น ในไฟล์ TEXT ของโปรแกรมเรา อย่างโปรแกรม COUNTER ที่จะต้องมีการ สั่งให้ทำงาน อ่าน และเขียน อยู่ทุก ๆ ครั้งที่มีการเรียกใช้งานเว็บเพจที่มีการติดตั้งโปรแกรมดังกล่าว ไฟล์ TEXT นั้น จะต้องมีการเปลี่ยนค่า CHMOD เป็น 777 เพื่อให้มีการเขียนไฟล์ได้จากผู้ใช้อื่น ๆ เป็นต้น
เพราะว่า

ความหมายของตัวเลข chmod(UNIX) แต่ละตัวมีความหมายยังงี้นะครับ

0 หมายถึง ทำอะไรไม่ได้กับแฟ้มนั้นเลย
1 หมายถึง ประมวลผลอย่างเดียว
2 หมายถึง เขียนได้อย่างเดียว
3 หมายถึง เขียนและประมวลผลได้
4 หมายถึง อ่านได้อย่างเดียว
5 หมายถึง อ่านและประมวลผลได้
6 หมายถึง อ่านและเขียน แต่ประมวลผลไม่ได้
7 หมายถึง ทำได้ทุกอย่าง ทั้งอ่าน เขียน และประมวลผล

สำหรับการ chmod กับโปรแกรม ftp เราแค่คลิ๊กขวาที่ ไฟล์ หรือ โฟล์เดอร์ แล้วเลือก permission หรือ กำหนดสิทธิ์การใช้ งาน แล้วจะคลิ๊กตามช่อง เหลือใส่ค่าตัวเลขเอาก็แล้วแต่ถนัดนะครับ อย่าใส่เป็น 000 ล่ะกัน

DNS คืออะไร DNS server คืออะไร

ใครเคยสงสัยไหมครับว่า DNS คืออะไร DNS server คืออะไร
ถ้าอยากรู้ตามมาอ่านได้เลยครับ จะอธีบายให้ อ่าน ง่ายๆ สไตล์นายโต้

ในช่วงแรกๆของการใช้เครือข่ายที่ใช้โปรโตคอล TCP/IP นั้น แต่ละโฮสต์จะใช้หมายเลข IP เป็นสิ่งบ่งชี้ตัวกลางที่ ผู้ใช้อีกเครื่องหนึ่งจะติดต่อกับผู้ใช้อีกเครื่องหนึ่ง ผู้ใช้คนนั้นต้องรู้จักหมายเลข IP ของอีกเครื่องหนึง เครือข่ายนี้จะเหมาะกับเครือข่ายที่ไม่ใหญ่มากนัก แต่เนื่องจากการเจริญเติบโตของ อินเตอร์เนตเป็นไปอย่างรวดเร็ว ทำให้การจำหมายเลข IP ของแต่ละโฮสต์เป็นไปได้ยาก ดังนั้นจึงมีการพัฒนาระบบเพื่อตั้งชื่อให้แต่ละโฮสต์ แทนการใช้หมายเลข IP ซึ่งระบบนี้เรียกว่า DNS (Domain Name System)


DNS คือ Domain Name System และ DNS server คือ Domain Name System server เป็นเครื่องบริการแปลงชื่อเว็บเป็นหมายเลข IP ซึ่งการแปลงชื่อนี้อาจเกิดในเครื่อง local เอง จาก cache ในเครื่อง local หรือจากเครื่องบริการของผู้ให้บริการ เพราะ เบอร์ IP Address เป็นตัวเลขที่ใช้ไม่ค่อยสะดวกและจำยาก ด้วยเหตุนี้จึงมีการคิดระบบตั้งชื่อแบบที่เป็นตัวอักษร ให้มีความหมายเพื่อการจดจำได้ง่ายกว่ามาก เวลาเราอ้างถึงเครื่องใดบนอินเตอร์เน็ต เราก็จะใช้ชื่อ DNS เช่น www.siamdhost.com แต่ในการใช้งานจริงนั้นเครื่องคอมพิวเตอร์ที่เราใช้อยู่ เมื่อรับคำสั่งจากเราแล้ว เค้าจะขอ (request) เครื่องคอมพิวเตอร์ที่ทำหน้าที่บริการบอกเลขหมาย IP Address (ทำหน้าที่คล้ายสมุดโทรศัพท์ Yellow Pages) ซึ่งเรียกกันว่าเป็น DNS Server หรือ Name Server ตัว Name Server เมื่อได้รับ request ก็จะตอบเลขหมาย IP Address กลับมาให้เช่น สำหรับ www.siamdhost.com นั้นจะตอบกลับมาเป็น xxx.xxx.xxx.xxx จากนั้นเครื่องคอมพิวเตอร์ของเราจึงจะเริ่มทำการติดต่อ กับคอมพิวเตอร์เป้าหมาย ซึ่งมันก็จะผ่านกระบวนการแบบที่กล่าวไปข้างต้น คือแบ่งข้อมูลออกเป็น packet จ่าหัวด้วย IP จากนั้นส่ง packet ไปซึ่งก็จะวิ่งผ่าน gateway ต่างๆ มากมายไปยังเป้าหมาย
บางทีเราจะพบกรณีที่คอมพิวเตอร์ที่เป็น Name Server นั้นไม่ทำงาน เราจะไม่สามารถติดต่อเครื่องอื่นบนอินเตอร์เน็ตได้อีกต่อไปโดยใช้ชื่อ DNS Server หากเราทราบ IP Address เราสามารถใช้ IP Address ได้ตรงๆ ทำให้เราไม่จำเป็นต้องพึ่งสมุดโทรศัพท์ของ Name Server ด้วยเหตุนี้เราจึงทำการเก็บชื่อและ IP Address ไว้ในสมุดโทรศัพท์ส่วนตัวประจำเครื่อง เช่นบนระบบยูนิกซ์มีไฟล์ /etc/hosts เอาไว้เก็บชื่อ DNS ที่ใช้บ่อยๆ

DNS ทำหน้าที่คล้ายสมุดโทรศัพท์คือ เมื่อมีคนต้องการจะโทรศัพท์หาใคร คนนั้นก็จะเปิดสมุดโทรศัพท์ดู เพื่อค้นหาหมายเลขโทรศัพท์ของคนที่ต้องการติดต่อ คอมพิวเตอร์ก็เช่นกัน เมื่อต้องการสื่อสารกับคอมพิวเตอร์เครื่องอื่น เครื่องนั้นก็จะทำการสอบถามหมายเลข IP ของเครื่องที่ต้องการสื่อสารด้วยกับ DNS server วึ่งจะทำการค้นหาหมายเลขดังกล่าวในฐานข้อมูลแล้วแจ้งให้โฮสต์ดังกล่าว ทราบ ระบบ DNS แบ่งออกเป็น 3 ส่วนคือ

Name Resolvers : ดังที่ได้กล่าวมาแล้วว่าจุดประสงค์หลักของ DNS คือการแปลงชื่อคอมพิวเตอร์ ให้เป็นหมายเลข IP ในเทอมของ DNS แล้วเครื่องไคลเอนท์ที่ต้องการสอบถามหมายเลข IP จะเรียกว่า "รีโซล์ฟเวอร์ (resolver)" วอฟแวร์ที่ทำหน้าที่เป็นรีโซล์ฟเวอร์นั้นจะถูกสร้างมากับแอพพลิเคชันหรืออาจจะเป็นไลบรารีที่มีอยู่ในเครื่องไคลเอนท์

Domain Name Space : ฐานข้อมูลระบบ DNS มีโครงสร้างเป็นต้นไม้ ซึ่งจะเรียกว่า "โดเมนเนมสเปซ (Domain Name Space)" แต่ละโดเมนจะมีชื่อและสามารถมีโดเมนย่อยหรือซับโดเมน (Subdomain) การเรียกชื่อจะใช้จุด ( .) เป็นตัวแบ่งแยกระหว่างโดเมนหลักและโดเมนย่อย
Name Servers : เนมเซิร์ฟเวอร์ คือเครื่องคอมพิวเตอร์ที่รันโปรแกรมที่จัดการฐานข้อมูลบางส่วนของระบบ DNS เนมเซิร์ฟเวอร์จะตอบกลับการร้องขอทันทีโดยการค้นหาข้อมูลในฐานของมูลตัวเอง หรือจะส่งต่อการร้องขอ ไปยังเนมเซิร์ฟเวอร์อื่น ถ้าเนมเซิร์ฟเวอร์มีเร็คคอร์ดของส่วนของโดเมน แสดงว่า เนมเซิร์ฟเวอร์นั้นเป็นเจ้าของโดเมนนั้น (Authoritative) ถ้าไม่มีก็จะเรียกว่า Non-Authoritative

Domain

โครงสร้างของระบบ DNS นั้นจะเ็ป็้นแบบมีลำดับชั้น (Hierarchy) ดังรูปที่แล้ว สิทธิในการจัดการโดเมนนั้นก็ถูกแบ่งให้เป็นชั้นเช่นกัน ซึ่งจะแบ่งออกเป็น 3 ระดับ คือ

Root Domain : ระดับสูงสุดของโดเมน คือ รูทโดเมน (Root Domain) ทุกๆโดเมนจะอยู่ภายใต้รูทโดเมนหมด ดังนั้นรูทโดเมนจึงเป็นส่วนที่สำคัญมากของระบบ DNS ในระบบอินเตอร์เนตนั้นรูทโดเมนประกอบด้วยเซิร์ฟเวอร์ 7 เครื่อง

Top-Level Domain : ระดับโดเมนที่ถัดลงมาจากรูทโดเมนจะเรียกว่า โดเมนระดับที่หนึ่ง (Top-level domain) โดเมนในระดับนี้จะถูกกำหนดให้โดยประเภทขององค์กร โดเมนของประเทศ และโดเมนการแปลงกลับ

Second-Level Domain : สำหรับโดเมนระดับรองลงมาจาก top-level นี้จะเป็นโดเมนที่แจกจ่ายให้กับองค์กร หรือบุคคลที่ต้องการมีชื่อโดเมน