umask ทำหน้าที่เป็นชุดของสิทธิ์ที่แอปพลิเคชันไม่สามารถตั้งค่าในไฟล์ มันเป็นมาสก์การสร้างโหมดไฟล์สำหรับกระบวนการและไม่สามารถตั้งค่าสำหรับไดเรกทอรีได้ แอปพลิเคชันส่วนใหญ่จะไม่สร้างไฟล์ที่มีการอนุญาตให้ใช้สิทธิดังนั้นพวกเขาจะมีค่าเริ่มต้น666
ซึ่งจะถูกแก้ไขโดย umask
ในขณะที่คุณได้ตั้ง umask เพื่อลบบิตอ่าน / เขียนสำหรับเจ้าของและบิตอ่านสำหรับคนอื่น ๆ เริ่มต้นเช่นในการใช้งานจะส่งผลให้สิทธิ์ของแฟ้มที่ถูก777
133
นี่หมายความว่าคุณ (และคนอื่น ๆ ) สามารถเรียกใช้ไฟล์ได้และคนอื่น ๆ ก็สามารถเขียนลงไปได้
หากคุณต้องการให้ไฟล์ไม่สามารถอ่าน / เขียน / ดำเนินการโดยใครก็ได้ยกเว้นเจ้าของคุณควรใช้ umask 077
เพื่อปิดสิทธิ์เหล่านั้นสำหรับกลุ่ม & อื่น ๆ
ในทางตรงกันข้าม umask ของ000
จะทำให้ไดเรกทอรีที่สร้างขึ้นใหม่สามารถอ่านได้เขียนได้และสืบทอดมาสำหรับทุกคน (สิทธิ์จะเป็น777
) umask นั้นไม่ปลอดภัยอย่างมากและคุณไม่ควรตั้ง umask ให้000
เป็น
ค่าเริ่มต้น umask บน Ubuntu นั้น022
หมายความว่าทุกคนสามารถอ่านไฟล์ที่สร้างขึ้นใหม่ แต่เจ้าของเท่านั้นที่เขียนได้:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
การเริ่มต้นใน Ubuntu Oneiric (11.10) ค่าเริ่มต้นของ umask นั้นผ่อนคลาย002
ซึ่งขยายการเข้าถึงการเขียนไปยังกลุ่มเจ้าของ:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
การดูและแก้ไข umask
หากต้องการดูการตั้งค่า umask ปัจจุบันของคุณให้เปิดเทอร์มินัลแล้วรันคำสั่ง:
umask
หากต้องการเปลี่ยนการตั้งค่า umask ของเชลล์ปัจจุบันเป็นอย่างอื่นให้พูด 077, รัน:
umask 077
หากต้องการทดสอบว่าการตั้งค่านี้ใช้งานได้หรือไม่คุณสามารถสร้างไฟล์ใหม่ (การอนุญาตไฟล์ของไฟล์ที่มีอยู่จะไม่ได้รับผลกระทบ) และแสดงข้อมูลเกี่ยวกับไฟล์ที่รัน:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
การตั้งค่า umask สืบทอดโดยกระบวนการที่เริ่มต้นจากเชลล์เดียวกัน ตัวอย่างเช่นเริ่มตัวแก้ไขข้อความ GEdit โดยดำเนินการgedit
ในเทอร์มินัลและบันทึกไฟล์โดยใช้ gedit คุณจะสังเกตเห็นว่าไฟล์ที่สร้างขึ้นใหม่นั้นได้รับผลกระทบจากการตั้งค่า umask เช่นเดียวกับในเทอร์มินัล
ใช้กรณี: ระบบผู้ใช้หลายคน
หากคุณอยู่ในระบบที่ใช้งานร่วมกันโดยผู้ใช้หลายคนต้องการให้ผู้อื่นไม่สามารถอ่านไฟล์ในโฮมไดเร็กตอรี่ของคุณได้ สำหรับสิ่งนั้น umask มีประโยชน์มาก แก้ไข~/.profile
และเพิ่มบรรทัดใหม่ด้วย:
umask 007
คุณต้องลงชื่อเข้าใช้อีกครั้งเพื่อให้การเปลี่ยนแปลง umask นี้~/.profile
มีผล ถัดไปคุณต้องเปลี่ยนการอนุญาตไฟล์ที่มีอยู่ของไฟล์ในโฮมไดเร็กตอรี่ของคุณโดยการลบบิตการอ่าน, การเขียนและเอ็กซีคิวต์โลก เปิดเทอร์มินัลแล้วดำเนินการ:
chmod -R o-rwx ~
หากคุณต้องการตั้งค่า umask /etc/profile
นี้นำไปใช้กับผู้ใช้ทุกคนในระบบคุณสามารถแก้ไขแฟ้มประวัติของทั้งระบบที่
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-