Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Mac

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

"คุณลองซ่อมแซมสิทธิ์แล้วหรือยัง?" เป็นเคล็ดลับการแก้ไขปัญหา Mac มาตรฐานที่ลอยลอยมาบนเว็บมานานนับปี สำหรับผู้ใช้หลายคน นี่ดูเหมือนจะแก้ปัญหาแปลกๆ หลายอย่าง แต่เมื่อ OS X El Capitan (10.11) เปิดตัว ตัวเลือก Repair Disk Permission หายไปทันทีจากแอป Disk Utility

หมายความว่า Apple แก้ปัญหาที่เกี่ยวข้องกับสิทธิ์ใน macOS แล้วหรือเป็นอย่างอื่น? เราจะถอดรหัสปริศนานี้และแสดงให้คุณเห็นว่าสิทธิ์ดิสก์ทำงานอย่างไรบน Mac ของคุณ

วิธีการทำงานของสิทธิ์ใน macOS

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

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

ดูสิทธิ์ระบบไฟล์

ผู้ใช้ทุกคนสามารถดูสิทธิ์ไฟล์และโฟลเดอร์โดยใช้หน้าต่าง Info ของ Finder หรือ Terminal ใน Finder ให้คลิกขวาที่ไฟล์หรือโฟลเดอร์ และเลือก Get Info จากเมนูบริบท คลิกสามเหลี่ยม Sharing & Permissions เพื่อขยายสิทธิ์ของรายการ

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

เพื่อดูข้อมูลนี้ใน Terminal ให้พิมพ์ต่อไปนี้:

ls -l "path to your file"

ตัวอักษรหลังจากขีดคือ L เล็ก และแสดงการเป็นเจ้าของและสิทธิ์ของไฟล์ของคุณ บนบรรทัดคำสั่ง ตัวย่อสำหรับสิทธิ์อ่านคือ r ในขณะที่เขียนคือ w และรันคือ x

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

เจ้าของ กลุ่ม และทุกคน

มาแยกประเภทผู้ใช้ 3 ประเภทที่ปรากฏในฟิลด์สิทธิ์ของ Mac:

  • Owner (เจ้าของ): เจ้าของรายการคือผู้ใช้ที่สร้างรายการหรือคัดลอกมันไปที่ Mac ผู้ใช้มักเป็นเจ้าของรายการส่วนใหญ่ในโฟลเดอร์บ้านของพวกเขา
  • Group (กลุ่ม): ทุกรายการยังเป็นของกลุ่ม กลุ่มคือชุดบัญชีผู้ใช้รวมเข้าด้วยกัน เพื่อให้สิทธิ์นำไปใช้กับสมาชิกทุกคน
  • Everyone (ทุกคน): ใช้การตั้งค่าสิทธิ์นี้เพื่อกำหนดการเข้าถึงสำหรับทุกคน รวมถึงผู้ใช้ท้องถิ่น การแชร์ และผู้ใช้แขก

อ่าน เขียน และรัน

ต่อไป มาดู 3 ประเภทของสิทธิ์ที่ผู้ใช้เหล่านี้สามารถมีได้:

  • Read (อ่าน): ผู้ใช้หรือสมาชิกกลุ่มสามารถเปิดไฟล์ได้ แต่ไม่สามารถบันทึกการเปลี่ยนแปลง หากเป็นโฟลเดอร์ คุณสามารถเรียกดูรายการไอเท็มได้
  • Write (เขียน): ผู้ใช้หรือสมาชิกกลุ่มสามารถแก้ไขหรือลบไฟล์ สำหรับโฟลเดอร์ คุณสามารถเปลี่ยนแปลงเนื้อหาโฟลเดอร์ได้
  • Execute (รัน): ไฟล์ที่มีสิทธิ์รันสามารถทำงานเป็นโปรแกรมหรือสคริปต์ กรณีของโฟลเดอร์ รันหมายถึงใครบางคนสามารถแสดงรายการเนื้อหาได้ หากสิทธิ์อ่านก็เปิดใช้งานอยู่

ปัจจัยที่ทำให้เกิดปัญหาสิทธิ์

ใน OS X Yosemite และก่อนหน้า Disk Utility สามารถตรวจสอบและซ่อมแซมสิทธิ์บนไฟล์และโฟลเดอร์บางส่วนได้ อย่างไรก็ตาม ในความเป็นจริง แอปไม่ได้ซ่อมแซมสิทธิ์ มันเพียงแค่รีเซ็ตมัน

เพิ่มเติม การพูดว่า Disk Utility ซ่อมแซม สิทธิ์ ทำให้ดูเหมือนว่าสิทธิ์สามารถเสียหายหรือเสียหายไปตามเวลา แต่สิ่งนี้ไม่จริง สิทธิ์คงที่จนกว่าจะมีบางอย่างหรือบางคนมาทำให้มันเปลี่ยน มีหลายเหตุผลที่สิ่งนี้เกิดขึ้น:

  1. App Installers (โปรแกรมติดตั้ง): โปรแกรมติดตั้งบางตัวเปลี่ยนสิทธิ์บนรายการที่มีอยู่เป็นส่วนจำเป็นของกระบวนการติดตั้ง แต่ล้มเหลวในการคืนค่ามันกลับไปที่การตั้งค่าที่เหมาะสม
  2. User error (ข้อผิดพลาดของผู้ใช้): หากคุณกำลังจัดการสิทธิ์ใน Terminal หรือผ่านแอปบุคคลที่สาม ข้อผิดพลาดอาจนำไปสู่ปัญหา ตัวอย่างเช่น การใช้คำสั่ง chmod อย่างไม่ถูกต้องสามารถเปลี่ยนการตั้งค่าสิทธิ์ของรายการได้
  3. Sharing a folder (แชร์โฟลเดอร์): ผู้ใช้ทุกคนบนคอมพิวเตอร์มีสิทธิ์เข้าถึงรายการในโฟลเดอร์ Shared หากคุณใช้โฟลเดอร์นี้เป็นที่เก็บไฟล์ระหว่างทาง ปัญหาสิทธิ์ไม่น่าจะเกิดขึ้น แต่หากคุณจัดเก็บรายการเพื่อใช้โดยหลายคนอย่างถาวร ปัญหาอาจเกิดขึ้น
  4. Permissions on Copied Items (สิทธิ์บนรายการที่คัดลอก): ยากที่จะคาดการณ์ว่า macOS จะกำหนดสิทธิ์อะไรเมื่อคุณคัดลอกไฟล์ผ่านโวล륨ภายนอก SMB หรือ FTP คุณอาจต้องใช้วิธีทดลองและผิดพลาดเพื่อแก้ปัญหานี้

อะไรเกิดขึ้นหลัง OS X El Capitan?

ใน OS X El Capitan Apple นำเสนอ System Integrity Protection (SIP) ให้กับไฟล์ระบบ โฟลเดอร์ และแม้แต่แอปที่รวมอยู่ด้วย มันปกป้องเนื้อหาระบบจากการแก้ไขโดยเจตนาหรือโดยไม่ได้ตั้งใจ ในขณะที่ยังคงการตั้งค่าสิทธิ์เริ่มต้นไว้ SIP ป้องกันไดเรกทอรีต่อไปนี้: /System, /usr, /bin, และ /sbin

เมื่อคุณอัปเดตแอป Apple หรืออัปเกรด macOS โปรแกรมติดตั้งจะตรวจสอบและรีเซ็ตสิทธิ์ของรายการใดๆ หากจำเป็น ไม่มีแอปบุคคลที่สาม (ไม่ว่าจะพฤติกรรมแย่แค่ไหน) สามารถเปลี่ยนสิทธิ์ได้ เว้นแต่คุณจะปิด SIP เราขุดลึกเพิ่มเติมเกี่ยวกับสิ่งที่ SIP ทำ หากคุณสนใจ

โฟลเดอร์ผู้ใช้และโฟลเดอร์บ้านเป็นอย่างไร?

System Integrity Protection ไม่ป้องกันรายการในโฟลเดอร์ /Library แอปใน /Applications และทุกอย่างใน Home folder ของคุณ โฟลเดอร์ ~/Library มีความสำคัญโดยเฉพาะ เนื่องจากประกอบด้วยไฟล์การตั้งค่าระบบหลัก การตั้งค่าแอปบุคคลที่สาม ข้อมูล Keychain และอื่นๆ

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

  • การเปลี่ยนแปลงที่คุณทำกับ Finder, System Preferences หรือ Dock ไม่ได้รับการบันทึก
  • หน้าต่างที่เปิดอยู่ครั้งล่าสุดที่คุณล็อกเอาท์หรือปิดแอป เปิดอีกครั้งหลังจากล็อกอิน
  • คุณถูกขอรหัสผ่านผู้ดูแลระบบขณะย้ายรายการบางอย่างในโฟลเดอร์ Home
  • คุณได้รับข้อความ "macOS needs to repair your Library to run applications" ซ้ำๆ
  • เมื่อบันทึกไฟล์ คุณจะได้ข้อความว่าไฟล์ถูกล็อกหรือไม่มีสิทธิ์ที่จำเป็น เกิดขึ้นบ่อยกับเอกสาร Microsoft Office
  • แอปเริ่มต้นหรือบุคคลที่สามอาจล้มเหลวตอนเปิด บางแอปอาจไม่สามารถอัปเดตได้
  • Firefox หรือ Chrome ไม่โหลดการตั้งค่าของคุณ และระบุ "Unable to load your profile"
  • รูปภาพและวิดีโอที่คุณนำเข้าไปใน Photos ไม่ปรากฏในแอป หรือคุณได้ข้อความให้เลือกไลบรารี Photos เริ่มต้นทุกครั้งที่คุณเปิดแอป

รีเซ็ตสิทธิ์สำหรับโฟลเดอร์ Home

จากแถบด้านข้างของ Finder ให้คลิกขวาโฟลเดอร์ Home ของคุณ และเลือก Get Info คลิกสามเหลี่ยมดรอปดาวน์ Sharing & Permissions เพื่อดูสิทธิ์ของมัน

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

คลิกปุ่ม Lock ที่ด้านล่างของหน้าต่าง และป้อนรหัสผ่านผู้ดูแลระบบ จากนั้นเลือกปุ่ม action menu และเลือก Apply to enclosed items

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

คลิก OK เพื่อยืนยันการดำเนินการ สิทธิ์ที่อัปเดตจะเผยแพร่ผ่านโฟลเดอร์ Home ของคุณ

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

ต่อไป เปิดแอป Terminal และพิมพ์ต่อไปนี้:

diskutil resetUserPermissions / `id -u`

ตัวเลือกนี้รีเซ็ตสิทธิ์ผู้ใช้บน root volume (/) ให้เป็น ID ผู้ใช้ปัจจุบัน หากทุกอย่างเป็นไปอย่างดี ให้รีบูท Mac ของคุณ

แต่หากคุณได้ error 69841 ให้ทำตามขั้นตอนเหล่านี้:

บน macOS High Sierra หรือเก่ากว่า

  1. เปิดแอป Terminal และป้อนต่อไปนี้:
    chflags -R nouchg ~
  2. จากนั้นป้อนคำสั่งนี้อีกครั้ง:
    diskutil resetUserPermissions / `id -u`
  3. รีสตาร์ท Mac ของคุณ

บน macOS Mojave และใหม่กว่า

ขั้นตอนสำหรับ Mojave และใหม่กว่าเหมือนข้างต้น แต่คุณต้องเพิ่ม Terminal ให้ Full Disk Access ก่อนดำเนินการ ในการทำเช่นนี้ ให้ไปที่ System Preferences > Security & Privacy และคลิกแท็บ Privacy คลิกไอคอน Lock และป้อนรหัสผ่านผู้ดูแลระบบเพื่อทำการเปลี่ยนแปลง

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

ต่อไป เลือกแท็บ Full Disk Access จากนั้นคลิกปุ่ม Plus และเพิ่มแอป Terminal

สิทธิ์การเข้าถึงดิสก์ Mac: คำอธิบายและวิธีซ่อมแซมสิทธิ์ macOS

หลังจากทำเช่นนี้ ให้ดำเนินการต่อผ่านคำสั่ง Terminal ที่กล่าวมาสำหรับ High Sierra และเก่ากว่า

การเข้าใจบัญชีผู้ใช้ Mac

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

น่าประหลาดใจที่ Apple ไม่รวมตัวเลือกนี้อีกต่อไป แต่จำไว้ คุณควรใช้ขั้นตอนเหล่านี้เฉพาะเมื่อจำเป็น การเข้าใจสิทธิ์เป็นหัวข้อที่ซับซ้อน หากคุณเข้าใจว่าบัญชีผู้ใช้ macOS ทำงานอย่างไร มันจะกลายเป็นเรื่องง่ายขึ้นมาก อ่านคู่มือการตั้งค่าบัญชีผู้ใช้หลายบัญชีบน Mac เพื่อเรียนรู้เพิ่มเติม