“คุณลองซ่อมแซมการอนุญาตหรือยัง” เป็นเคล็ดลับการแก้ไขปัญหา Mac มาตรฐานที่ลอยอยู่ทั่วเว็บตลอดไป สำหรับผู้ใช้จำนวนมาก ดูเหมือนว่าจะสามารถแก้ปัญหาหายากได้หลายประเภท แต่เมื่อ OS X El Capitan (10.11) ออก ซ่อมแซมการอนุญาตดิสก์ ตัวเลือกหายไปจากแอป Disk Utility อย่างกะทันหัน
นั่นหมายความว่า Apple ได้แก้ไขปัญหาที่เกี่ยวข้องกับการอนุญาตใน macOS หรือเป็นอย่างอื่น? เราจะไขความลึกลับนี้และแสดงให้คุณเห็นว่าการอนุญาตดิสก์บน Mac ของคุณทำงานอย่างไร
วิธีการทำงานของสิทธิ์ใน macOS
ทุกรายการใน Mac ของคุณ ไม่ว่าจะเป็นไฟล์หรือโฟลเดอร์ จะมีการอนุญาตชุดหนึ่ง สิ่งเหล่านี้ควบคุมว่าบัญชีผู้ใช้ใดสามารถเข้าถึงได้และเข้าถึงได้ประเภทใด สิทธิ์ประกอบด้วยสามกิจกรรม (อ่าน เขียน และดำเนินการ) ดำเนินการโดยผู้ใช้สามประเภท (เจ้าของ กลุ่ม และทุกคน)
คุณสามารถกำหนดกฎของสิทธิ์แยกกันสำหรับระดับความเป็นเจ้าของแต่ละระดับ การอนุญาต ร่วมกับบัญชีและความเป็นเจ้าของ ช่วยให้คุณมีความปลอดภัย เปิดใช้งานการแชร์แบบมีการควบคุม ตั้งค่าการเข้าถึงไฟล์แบบจำกัดหรือไม่มีเลย และรักษาความสมบูรณ์ของระบบ
ดูสิทธิ์ของระบบไฟล์
ผู้ใช้ทุกคนสามารถดูการอนุญาตไฟล์และโฟลเดอร์โดยใช้หน้าต่าง Finder's Info หรือ Terminal ใน Finder ให้คลิกขวาที่ไฟล์หรือโฟลเดอร์แล้วเลือก รับข้อมูล จากเมนูบริบท คลิก การแบ่งปันและการอนุญาต สามเหลี่ยมเพื่อขยายการอนุญาตรายการ
หากต้องการดูข้อมูลนี้ใน Terminal ให้พิมพ์ดังต่อไปนี้:
ls -l "path to your file"
อักขระหลังขีดคือ ตัวพิมพ์เล็ก L และเปิดเผยความเป็นเจ้าของและการอนุญาตของไฟล์ของคุณ บนบรรทัดคำสั่ง ตัวย่อสำหรับสิทธิ์ในการอ่านคือ r ในขณะที่เขียนคือ w และดำเนินการคือ x .
เจ้าของ กลุ่ม และทุกคน
มาแบ่งผู้ใช้สามประเภทที่ปรากฏในช่องอนุญาตของ Mac:
- เจ้าของ :เจ้าของรายการคือผู้ใช้ที่สร้างรายการหรือคัดลอกไปยัง Mac ผู้ใช้มักจะเป็นเจ้าของรายการส่วนใหญ่ในโฟลเดอร์หลักของตน
- กลุ่ม :ทุกรายการเป็นของกลุ่มเช่นกัน กลุ่มคือชุดของบัญชีผู้ใช้ที่เชื่อมต่อเข้าด้วยกันเพื่อให้สามารถนำไปใช้กับสมาชิกทุกคนได้
- ทุกคน :ใช้การตั้งค่าการอนุญาตนี้เพื่อกำหนดการเข้าถึงสำหรับทุกคน รวมถึงผู้ใช้ในพื้นที่ การแชร์ และผู้ใช้ทั่วไป
อ่าน เขียน และดำเนินการ
ต่อไป มาดูการอนุญาตสามประเภทที่ผู้ใช้เหล่านี้มีได้:
- อ่าน :ผู้ใช้หรือสมาชิกกลุ่มสามารถเปิดไฟล์ได้ แต่ไม่สามารถบันทึกการเปลี่ยนแปลงได้ หากเป็นโฟลเดอร์ คุณจะเรียกดูรายการได้
- เขียน :ผู้ใช้หรือสมาชิกกลุ่มสามารถแก้ไขหรือลบไฟล์ได้ สำหรับโฟลเดอร์ คุณสามารถเปลี่ยนแปลงเนื้อหาของโฟลเดอร์ได้
- ดำเนินการ :ไฟล์ที่มีสิทธิ์ดำเนินการสามารถทำหน้าที่เป็นโปรแกรมหรือสคริปต์ได้ ในกรณีของโฟลเดอร์ การดำเนินการ หมายถึงบุคคลอื่นสามารถแสดงรายการเนื้อหาได้หากเปิดใช้งานการอนุญาตในการอ่าน
ปัจจัยที่ทำให้เกิดปัญหาในการอนุญาต
ใน OS X Yosemite และเวอร์ชันก่อนหน้า ยูทิลิตี้ดิสก์สามารถตรวจสอบและซ่อมแซมสิทธิ์ในไฟล์และโฟลเดอร์บางไฟล์ได้ อย่างไรก็ตาม แท้จริงแล้ว แอปไม่สามารถซ่อมแซมการอนุญาตได้ มันก็แค่รีเซ็ตมัน
นอกจากนี้ ให้พูดว่า Disk Utility ซ่อมแซม การอนุญาตทำให้ดูเหมือนว่าการอนุญาตอาจไม่ดีหรือเสียหายเมื่อเวลาผ่านไป แต่นี่ไม่เป็นความจริง สิทธิ์จะคงเดิมจนกว่าจะมีบางสิ่งหรือบางคนเข้ามาและทำการเปลี่ยนแปลง มีหลายสาเหตุที่อาจเกิดขึ้น:
- ตัวติดตั้งแอป: โปรแกรมติดตั้งบางตัวเปลี่ยนการอนุญาตสำหรับรายการที่มีอยู่เป็นส่วนที่จำเป็นของกระบวนการติดตั้ง แต่ไม่สามารถกลับไปใช้การตั้งค่าที่เหมาะสมได้
- ข้อผิดพลาดของผู้ใช้: หากคุณกำลังเล่นซอเกี่ยวกับสิทธิ์ใน Terminal หรือผ่านแอพของบริษัทอื่น ข้อผิดพลาดอาจทำให้เกิดปัญหาได้ ตัวอย่างเช่น การใช้ chmod . อย่างไม่เหมาะสม คำสั่งสามารถเปลี่ยนการตั้งค่าการอนุญาตของรายการ
- การแชร์โฟลเดอร์: ผู้ใช้ทั้งหมดบนคอมพิวเตอร์มีสิทธิ์เข้าถึงรายการในส่วน แชร์แล้ว โฟลเดอร์ หากคุณกำลังใช้โฟลเดอร์นี้เป็นที่เก็บไฟล์ระหว่างทาง ปัญหาการอนุญาตไม่น่าจะเกิดขึ้นได้ แต่หากคุณจัดเก็บสิ่งของไว้ใช้งานโดยบุคคลหลายคนเป็นการถาวร ปัญหาก็อาจเกิดขึ้นได้
- การอนุญาตสำหรับรายการที่คัดลอก: เป็นการยากที่จะคาดเดาว่า macOS จะกำหนดสิทธิ์ใดเมื่อคุณคัดลอกไฟล์ผ่านไดรฟ์ข้อมูลภายนอก SMB หรือ FTP คุณอาจต้องใช้การลองผิดลองถูกเพื่อแก้ปัญหานี้
เกิดอะไรขึ้นหลังจาก OS X El Capitan
ใน OS X El Capitan นั้น Apple ได้แนะนำ System Integrity Protection (SIP) ให้กับไฟล์ระบบ โฟลเดอร์ และแม้แต่แอพที่รวมเข้าด้วยกันทั้งหมด ปกป้องเนื้อหาระบบจากการปลอมแปลงโดยเจตนาและโดยไม่ได้ตั้งใจในขณะที่ยังคงรักษาการตั้งค่าการอนุญาตเริ่มต้นไว้ SIP ปกป้องไดเร็กทอรีต่อไปนี้:/System, /usr, /บิน และ /sbin .
เมื่อคุณอัพเดทแอพของ Apple หรืออัพเกรด macOS โปรแกรมติดตั้งจะตรวจสอบและรีเซ็ตการอนุญาตของรายการใดๆ หากจำเป็น ไม่มีแอปของบุคคลที่สาม (โดยไม่คำนึงถึงพฤติกรรมที่มีหมัด) สามารถเปลี่ยนการอนุญาตได้เว้นแต่คุณจะปิดการใช้งาน SIP เราได้เจาะลึกมากขึ้นว่า SIP ทำอะไรได้บ้างหากคุณสงสัย
แล้วโฟลเดอร์ผู้ใช้และโฮมล่ะ
System Integrity Protection ไม่ปกป้องรายการใน /Library โฟลเดอร์, แอปใน /Applications และทุกอย่างใน หน้าแรก . ของคุณ โฟลเดอร์ ~/Library โฟลเดอร์มีความสำคัญเป็นพิเศษ เนื่องจากประกอบด้วยไฟล์ค่ากำหนดระบบหลัก การตั้งค่าแอพของบริษัทอื่น ข้อมูลพวงกุญแจ และอื่นๆ
หากสิทธิ์ถูกเปลี่ยนเป็นไฟล์หรือโฟลเดอร์ใดๆ เหล่านี้ คุณอาจประสบปัญหาแปลกประหลาดมากมายบน Mac ของคุณ ปัญหาที่อาจเกิดขึ้นเนื่องจากการอนุญาตที่ไม่ถูกต้อง ได้แก่:
- การเปลี่ยนแปลงที่คุณทำกับ Finder, System Preferences หรือ Dock จะไม่ได้รับการบันทึก
- Windows ที่เปิดขึ้นในครั้งล่าสุดที่คุณออกจากระบบหรือออกจากแอปที่เปิดขึ้นอีกครั้งหลังจากที่คุณเข้าสู่ระบบ
- คุณจะถูกถามถึงรหัสผ่านของผู้ดูแลระบบขณะย้ายบางรายการในโฟลเดอร์โฮม
- คุณได้รับข้อความซ้ำๆ ว่า "macOS จำเป็นต้องซ่อมแซมไลบรารีของคุณเพื่อเรียกใช้แอปพลิเคชัน"
- เมื่อบันทึกไฟล์ คุณจะได้รับข้อความว่าไฟล์ถูกล็อกหรือไม่มีสิทธิ์ที่จำเป็น สิ่งนี้เกิดขึ้นมากมายกับเอกสาร Microsoft Office
- แอปเริ่มต้นหรือแอปของบุคคลที่สามอาจขัดข้องเมื่อเปิดใช้ แอพบางตัวอาจไม่สามารถอัปเดตได้
- Firefox หรือ Chrome ไม่โหลดค่ากำหนดของคุณและแจ้งว่า "ไม่สามารถโหลดโปรไฟล์ของคุณได้"
- รูปภาพและวิดีโอที่คุณนำเข้าไปยัง Photos จะไม่ปรากฏในแอป หรือคุณได้รับข้อความให้เลือกคลังรูปภาพเริ่มต้นทุกครั้งที่เปิดแอป
รีเซ็ตการอนุญาตสำหรับโฮมโฟลเดอร์
จากแถบด้านข้างของ Finder ให้คลิกขวาที่โฟลเดอร์หน้าแรกและเลือก รับข้อมูล . คลิก การแบ่งปันและการอนุญาต สามเหลี่ยมแบบเลื่อนลงเพื่อดูการอนุญาต
คลิก ล็อก ที่ด้านล่างของหน้าต่างและป้อนรหัสผ่านผู้ดูแลระบบของคุณ จากนั้นเลือก เมนูการทำงาน และเลือก นำไปใช้กับรายการที่แนบมา .
คลิก ตกลง เพื่อยืนยันการดำเนินการ สิทธิ์ที่อัปเดตจะเผยแพร่ผ่านโฟลเดอร์หน้าแรกของคุณ
ถัดไป เปิดแอป Terminal แล้วพิมพ์ดังต่อไปนี้:
diskutil resetUserPermissions / `id -u`
ตัวเลือกนี้จะรีเซ็ตการอนุญาตของผู้ใช้บนโวลุ่มรูท (/ ) ไปยัง ID ผู้ใช้ปัจจุบัน หากทุกอย่างเป็นไปด้วยดี ให้รีบูตเครื่อง Mac
แต่ถ้าคุณได้รับ ข้อผิดพลาด 69841 จากนั้นทำตามขั้นตอนเหล่านี้:
ใน macOS High Sierra หรือรุ่นก่อนหน้า
- เปิดแอป Terminal และป้อนข้อมูลต่อไปนี้:
chflags -R nouchg ~
- จากนั้นป้อนคำสั่งนี้อีกครั้ง:
diskutil resetUserPermissions / `id -u`
- รีสตาร์ท Mac ของคุณ
ใน macOS Mojave และใหม่กว่า
ขั้นตอนสำหรับ Mojave และใหม่กว่านั้นเหมือนกับขั้นตอนข้างต้น แต่คุณต้องเพิ่ม Terminal ใน การเข้าถึงดิสก์แบบเต็ม ก่อนดำเนินการต่อ ในการดำเนินการนี้ ให้ไปที่ การตั้งค่าระบบ> ความปลอดภัยและความเป็นส่วนตัว และคลิก ความเป็นส่วนตัว แท็บ คลิก ล็อก ไอคอนและป้อนรหัสผ่านผู้ดูแลระบบของคุณเพื่อทำการเปลี่ยนแปลง
จากนั้นเลือก การเข้าถึงดิสก์แบบเต็ม แท็บ จากนั้นคลิกปุ่ม บวก และเพิ่มแอป Terminal
หลังจากทำเช่นนี้ ให้ดำเนินการตามคำสั่ง Terminal ด้านบนที่กล่าวถึง High Sierra และรุ่นก่อนหน้า
การทำความเข้าใจบัญชีผู้ใช้ Mac
เมื่อตัวเลือกในการซ่อมแซมการอนุญาตดิสก์หายไปจากแอพยูทิลิตี้ดิสก์ เราไม่ได้คิดอะไรมากเพราะไม่เคยเป็นขั้นตอนการแก้ไขปัญหาที่สำคัญ แต่เมื่อเห็นประเภทของปัญหาที่คุณอาจพบเนื่องจากการอนุญาตที่ไม่ถูกต้อง เป็นที่ชัดเจนว่าการรีเซ็ตสิทธิ์สำหรับโฟลเดอร์หน้าแรกเป็นวิธีสุดท้ายเมื่อปัญหาเหล่านี้เกิดขึ้น
น่าแปลกใจที่ Apple ไม่ได้รวมตัวเลือกนี้ไว้แล้ว แต่จำไว้ว่าคุณควรใช้ขั้นตอนเหล่านี้เมื่อจำเป็นเท่านั้น การทำความเข้าใจสิทธิ์เป็นหัวข้อที่ซับซ้อน หากคุณเข้าใจวิธีการทำงานของบัญชีผู้ใช้ macOS ก็จะง่ายขึ้นมาก อ่านคู่มือนี้เพื่อตั้งค่าบัญชีผู้ใช้หลายบัญชีบน Mac เพื่อเรียนรู้เพิ่มเติม