การตั้งค่า Umask แบบกำหนดเองใน macOS

ทุกไฟล์และโฟลเดอร์ใน Mac มีสิทธิ์อนุญาตอยู่หนึ่งชุด เมื่อคุณสร้างไฟล์หรือโฟลเดอร์ใหม่ Umask จะเป็นสิ่งที่กำหนดว่าการตั้งค่าสิทธิ์อนุญาตเหล่านี้จะเป็นเช่นไร

ขั้นตอนขั้นสูงเหล่านี้มีไว้สำหรับผู้ดูแลระบบเป็นหลัก และผู้ใดก็ตามที่มีความคุ้นเคยกับบรรทัดคำสั่ง โปรดใช้ความระมัดระวังขณะเปลี่ยนสิทธิ์การใช้งานและค่า Umask ของไฟล์ เพราะหากคุณตั้งค่าไม่ถูกต้อง ความปลอดภัยของไฟล์ โฟลเดอร์ หรือแอปบน Mac อาจลดลง หรือแอปของคุณอาจใช้งานไม่ได้

เกี่ยวกับสิทธิ์อนุญาตและค่า Umask

สิทธิ์อนุญาต ทุกไฟล์ โฟลเดอร์ และแอปที่เก็บไว้บน Mac จะมีการตั้งค่าสิทธิ์อนุญาตซึ่งเป็นสิ่งที่กำหนดว่าบัญชีผู้ใช้บัญชีใดสามารถอ่าน เขียน หรือใช้ไฟล์ โฟลเดอร์ หรือแอปได้ และสิทธิ์อนุญาตเหล่านี้มีสิทธิ์อนุญาต POSIX และ Access Control List (ACL) รวมอยู่ด้วย คุณสามารถปรับค่า Umask ของผู้ใช้เพื่อให้สิทธิ์อนุญาต POSIX ของผู้ใช้มีข้อจำกัดมากขึ้นหรือน้อยลงได้

ค่า Umask สิทธิ์อนุญาต POSIX สำหรับไฟล์อาจอยู่ในรูปแบบเลข 3 หลัก และคุณอาจเห็นสิทธิ์อนุญาตในรูปแบบนี้เมื่อดูจาก Terminal ซึ่งเลขแต่ละหลักมีค่าได้ตั้งแต่ 0 ถึง 7 เมื่อคุณสร้างไฟล์ใหม่ ระบบจะนำค่า Umask ไปหักลบจากค่าเริ่มต้น (ปกติจะเป็น 666 สำหรับไฟล์ และ 777 สำหรับโฟลเดอร์) เพื่อกำหนดสิทธิ์อนุญาตสำหรับไฟล์หรือโฟลเดอร์ใหม่ ตัวอย่างเช่น หากค่า Umask เริ่มต้นคือ 022 สิทธิ์อนุญาตจะเป็น 644 สำหรับไฟล์ใหม่ และ 755 สำหรับโฟลเดอร์ใหม่

คุณสามารถตั้งค่า Umask ได้ในหลายแห่ง ซึ่งแต่ละแห่งจะส่งผลต่อแอปแตกต่างกันไป หากคุณตั้งค่า Umask ไม่ถูกต้อง อาจส่งผลให้คุณเปิดไฟล์นั้นไม่ได้อีก หรือเป็นการให้สิทธิ์แก่ผู้ใช้อื่น ดูข้อมูลเพิ่มเติมในหัวข้อ MODES ของหน้าคู่มือการใช้คำสั่ง chmod(1)

Umask สำหรับแอปพลิเคชันผู้ใช้

เข้าสู่ระบบในฐานะผู้ดูแลระบบแล้วป้อนคำสั่งต่อไปนี้ใน Terminal โดยแทนที่ nnn ด้วยค่า Umask เช่น 027 หรือ 002 คำสั่งนี้จะตั้งค่า Umask ของผู้ใช้สำหรับทุกแอปที่เปิดอยู่ รวมทั้งแอปที่เข้าถึงจากบรรทัดคำสั่งและไฟล์ใหม่ที่แอปเหล่านั้นสร้างขึ้นด้วย หลังจากที่ใช้คำสั่งนี้ คุณอาจต้องรีสตาร์ท Mac

sudo launchctl config user umask nnn

หาก Terminal แสดงข้อความว่า ”Could not write configuration: No such file or directory” ให้ตรวจสอบว่าดิสก์เริ่มต้นมีโฟลเดอร์อยู่ที่ /private/var/db/com.apple.xpc.launchd/config หากไม่มีโฟลเดอร์คอนฟิกดังกล่าว ให้ลองอีกครั้งหลังจากใช้คำสั่งนี้เพื่อสร้างโฟลเดอร์ขึ้นมา

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

Umask สำหรับกระบวนการระบบ

เข้าสู่ระบบในฐานะผู้ดูแลระบบแล้วป้อนคำสั่งต่อไปนี้ใน Terminal โดยแทนที่ nnn ด้วยค่า Umask เช่น 027 หรือ 002 คำสั่งนี้เป็นการตั้งค่า Umask ของผู้ใช้สำหรับทุก Daemon ที่ผู้ใช้เรียกใช้งานในระดับระบบ เราไม่แนะนำให้คุณทำเช่นนี้ เพราะอาจทำให้สิทธิ์อนุญาตของไฟล์ที่ซอฟต์แวร์ระบบต้องใช้เกิดการเปลี่ยนแปลงได้ สิทธิ์อนุญาตที่จำกัดมากเกินไปอาจทำให้ซอฟต์แวร์ไม่สามารถทำงานได้ และสิทธิ์อนุญาตที่ให้สิทธิ์มากเกินไปอาจทำให้เกิดปัญหาด้านความปลอดภัยได้ หลังจากที่ใช้คำสั่งนี้ คุณอาจต้องรีสตาร์ท Mac

sudo launchctl config system umask nnn

หาก Terminal แสดงข้อความว่า ”Could not write configuration: No such file or directory” ให้ตรวจสอบว่าดิสก์เริ่มต้นมีโฟลเดอร์อยู่ที่ /private/var/db/com.apple.xpc.launchd/config หากไม่มีโฟลเดอร์คอนฟิกดังกล่าว ให้ลองอีกครั้งหลังจากใช้คำสั่งนี้เพื่อสร้างโฟลเดอร์ขึ้นมา

sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config

ดูเพิ่มเติม

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า Umask ให้ป้อน man launchctl ลงในเทอร์มินัล

วันที่เผยแพร่: