สมมติว่ามาสก์เริ่มต้นเป็น 0666 umask
0022 จะสร้างมาสก์ใหม่ 0644 (0666-0022 = 0644) ซึ่งหมายความว่ากลุ่มและผู้อื่นมีสิทธิ์ในการอ่าน (ไม่มีการเขียนหรือดำเนินการ)
ตัวเลข "พิเศษ" (หมายเลขแรก = 0) ระบุว่าไม่มีโหมดพิเศษ
หากโหมดเริ่มต้นด้วยตัวเลขมันจะถูกตีความว่าเป็นฐานแปดมิฉะนั้นมันหมายถึงเป็นสัญลักษณ์
0 คือตัวเลขตามที่เป็น 1 (สำหรับบิตเหนียว) หรือ 6 (สำหรับ SGID) คำสั่งเช่นchmod
สามารถเรียกใช้โดยวิธีอื่นเช่นchmod ug+rw mydir
ที่คุณจะเพิ่มสิทธิ์การอ่านและเขียนให้กับผู้ใช้และกลุ่ม โปรดทราบว่าโหมดในกรณีนี้ (ug + rw) ไม่ได้เริ่มต้นด้วยหลักดังนั้นจะไม่ถูกตีความว่าเป็นฐานแปด แต่เป็นสัญลักษณ์แทน
ดูen.wikipedia.org/wiki/Chmod#Symbolic_examplesสำหรับสัญลักษณ์เช่นเดียวกับwww.lifeaftercoffee.com/2007/03/20/special-permission-modes-in-linux-and-unix/สำหรับโหมดพิเศษ
ฉันไม่รู้ว่าคุณจะเปิดโปงบิตแรกด้วยumask
แต่ในทางเทคนิคคุณสามารถทำได้ มันจะอธิบายว่าทำไมคุณมักจะเห็นว่ามันเป็นศูนย์
มอบเครดิตให้pinkfloydx33
ตัวเลขแรกของหน้ากากนั้นเกี่ยวข้องกับการอนุญาตพิเศษที่ไม่พอดีกับเจ้าของ / กลุ่ม / รุ่นอื่น ๆ เมื่อมีการระบุสี่หลักสำหรับการอนุญาตไฟล์แรกหมายถึงค่าพิเศษเหล่านั้น
4000 = SUID
2000 = SGID
1000 = sticky bit
บิต SUID ย่อมาจาก set-user-ID ทำให้โปรแกรมที่เรียกใช้งานทำงานได้โดยใช้ user id (uid) ที่มีประสิทธิภาพของเจ้าของ - กล่าวอีกนัยหนึ่งไม่ว่าใครจะเรียกใช้งานก็ตามโปรแกรมจะทำงานโดยมีสิทธิ์ของเจ้าของ สิ่งนี้มักพบได้ในโปรแกรมที่ทำสิ่งต่าง ๆ ที่ต้องการสิทธิ์รูท แต่ผู้ใช้ปกติจะต้องดำเนินการดังนี้: passwd
เป็นตัวอย่างหนึ่ง
SGID บิตย่อมาจาก set-group-ID คล้ายกันมาก แต่ทำงานด้วยid กลุ่มที่มีประสิทธิภาพ(gid) ของเจ้าของ
บิตเหนียวนั้นซับซ้อนกว่าเล็กน้อยหากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนั้นคุณสามารถอ่าน manpage sticky
ได้
บิตเหล่านี้สามารถใช้กับไดเรกทอรีได้ แต่ความหมายเปลี่ยนไป
ฉันไม่เชื่อว่าคุณสามารถตั้งค่าumask
ให้อนุญาตให้คุณเปิดใช้งานบิตพิเศษเหล่านี้ได้ตามค่าเริ่มต้น แต่คุณอาจไม่ต้องการทำสิ่งนั้นเลย
มอบเครดิตแก่ผู้ใช้470379
man 2 umask
(การเรียกระบบที่สอดคล้องกัน) "มีการใช้เฉพาะบิตสิทธิ์การใช้ไฟล์ของmask
" ในbash
umask 1000 สร้างข้อผิดพลาด: "หมายเลขฐานแปดอยู่นอกช่วง" แล้วทำไม 0 พิเศษ? ฉันคิดว่ามันแค่แสดงให้เห็นว่าจำนวนนั้นเป็นเลขฐานแปด