------------------------------------------ Note01 -- เพิ่มเติมสำหรับสัปดาห์ที่ ๑ ------------------------------------------ ตอนที่ ๑ คำสั่ง umask ------------------------ ทุกครั้งที่มีการสร้างแฟ้มขึ้นใหม่ ระบบปฏิบัติการ Unix จะทำการกำหนดสิทธิการใช้งานโดยปริยาย (default permission) ให้แก่แฟ้มนั้น ผู้ใช้สามารถจำกัดสิทธิการใช้งานสำหรับแฟ้มใหม่ได้ โดยการกำหนด ตัวพราง (mask) ด้วยคำสั่ง umask -- umask เป็นคำสั่งของเชลล์ จึงไม่มีรายละเอียดใน Online Manual Page (ใช้คำสั่ง man umask ไม่ได้ ได้เฉพาะ umask(2) ซึ่งเป็น บริการหรือ system call ของระบบปฏิบัติการ) หากต้องการรายละเอียด ต้องดูจาก Online Manual Page ของเชลล์ เช่น $ man bash ซึ่งจะได้คู่มือของ bash ประมาณ 5,600 บรรทัด ไม่จำเป็นต้องอ่านทั้งหมด สามารถใช้คำสั่งค้นคำช่วยได้ โดยการกดพิมพ์ /umask เพื่อค้นหาคำว่า umask หากยังไม่ตรงความต้องการ ให้กดแป้น n (Next) เพื่อหาคำต่อไป จะได้รูปแบบการใช้งานและคำอธิบาย umask [-S] [mask] คำสั่ง umask เมื่อใช้งานโดยไม่มีพารามิเตอร์ใด จะแสดงค่าปัจจุบันของ umask เป็นเลขฐานแปด เช่น $ umask 0077 เลขฐานแปดที่คำสั่ง umask แสดงมีสี่หลัก หลักแรกแสดงคุณลักษณะ (attribute) ของแฟ้ม ที่เหลืออีกสามหลักเป็นสิทธิการใช้งาน เวลากำหนดต้องกำหนดทั้งสี่หลัก คุณลักษณะของแฟ้ม กำหนดด้วยบิต 3 บิต คือ sticky bit, setuid bit และ setuid bit รายละเอียดจะได้กล่าวถึงต่อไปเมื่อถึงเวลา สำหรับ การกำหนดค่าในคำสั่ง umask จะกำหนดมีค่าให้เป็น 0 เสมอ เมื่อเพิ่ม option -S เป็นการกำหนดให้แสดงผลเป็นสัญลักษณ์แทนเลขฐานแปด เช่น $ umask -S u=rwx,g=,o= การกำหนดค่าใหม่ก็เช่นเดียวกัน ทำทั้งเลขฐานแปด และสัญลักษณ์ default permission ของ Unix แฟ้มเป็น 666 110 110 110 rw- rw- rw- ไดเรกทอรีเป็น 777 111 111 111 rwx rwx rwx เมื่อมีการสร้างแฟ้มหรือไดเรกทอรีใหม่ ระบบปฏิบัติการจะทำนำ default permission มาทำ bitwise and กับ complement ของ umask ที่ผู้ใช้กำหนด หากกำหนดให้ defualt permission เป็น dp จะได้ สิทธิการใช้งานของแฟ้ม/ไดเรกทอรีที่สร้างใหม่ = dp & (~umask) เมื่อ & เป็นการ and ระดับบิต (bitwise AND) และ ~ เป็นนิเสธระดับบิต (bitwise NOT หรือ one's complement) ตัวอย่าง (1). default permission สำหรับแฟ้ม = 666 (ฐานแปด) = 110 110 110 (ฐานสอง) umask = 077 (ฐานแปด) = 000 111 111 (ฐานสอง) สิทธิการใช้งานของแฟ้มที่สร้างใหม่ umask 000 111 111 ~umask 111 000 000 df 110 110 110 & 110 000 000 600 (ฐานแปด) = rw- --- --- (2). default permission สำหรับไดเรกทอรี = 777 (ฐานแปด) = 111 111 111 (ฐานสอง) umask = 077 (ฐานแปด) = 000 111 111 (ฐานสอง) สิทธิการใช้งานของไดเรกทอรีที่สร้างใหม่ umask 000 111 111 ~umask 111 000 000 df 111 111 111 & 111 000 000 700 (ฐานแปด) = rwx --- --- แบบฝึกหัด ------------ หากกำหนด umask เป็น 0022 สิทธิการใช้งานแฟ้มและไดเรกทอรัจะเป็นอย่างไร? จงแสดงวิธีวิเคราะห์ตามตัวอย่างข้างต้น ๒. ตัวแปร TERM สำหรับกำหนดคุณลักษณะของจอแสดงผล โปรแกรม Terminal Emulator ส่วนใหญ่ในปัจจุบัน สนับสนุนสีของตัวอักษร จำนวน 256 สี และสามารถกำหนดให้ทำงานแบบนี้ได้ด้วยโดยการ กำหนดตัวแปร TERM ให้มีชนิดเป็น xterm-256color กำหนดในแฟ้ม .bash_profile TERM=xterm-256color กำหนด vi ให้แสดงสีสำหรับองค์ประกอบต่างๆ ของโปรแกรมภาษา C หรือ shell script ในแฟ้ม .exrc syntax on หรือ ใช้คำสั่งนี้ใน Last Line mode