เห็นข้อผิดพลาด "ไม่อนุญาตให้ดำเนินการ" ใน macOS Catalina หรือ Mojave หรือไม่

ทำงานกับ Terminal Utility ของ Mac แต่ได้รับข้อความแสดงข้อผิดพลาดว่า "ไม่อนุญาตให้ดำเนินการ" คำสั่ง Terminal ที่เคยทำงานใน macOS High Sierra และ Sierra ไม่ทำงานหรือไม่

หากคุณไม่ได้อยู่คนเดียว โปรแกรมอ่าน Mac ขั้นสูงของเราบางส่วนบอกเราว่างานของพวกเขาถูกขัดขวางโดยข้อความแสดงข้อผิดพลาด "ไม่อนุญาตการดำเนินการ" นี้ พวกเขาเห็นข้อผิดพลาดนี้ในคำสั่งขั้นสูงเช่น super-user sudo และเปลี่ยนคำสั่ง chown ความเป็นเจ้าของ แต่ยังรวมถึงคำสั่งง่ายๆ เช่น list directory command ls และอื่นๆ อะไรจะวุ่นวาย!

ผู้ใช้หลายคนต้องเผชิญกับข้อความแสดงข้อผิดพลาดที่น่ารำคาญนี้ตั้งแต่อัปเดตเป็น macOS Catalina-Mojave

เกิดขึ้นเมื่อเรียกใช้แอปพลิเคชันของบุคคลที่สามหรือหลังจากป้อนบรรทัดคำสั่งใน Terminal ไม่ว่าคำขอจะง่ายเพียงใด!

ข้อความแสดงข้อผิดพลาด "ไม่อนุญาตให้ดำเนินการ" ปรากฏขึ้นแม้ในขณะที่พยายามอ่านไดเรกทอรีบางรายการในผู้ใช้ในพื้นที่!

macOS นั้นเชื่อถือได้และได้รับการปกป้องอย่างดี แต่บางครั้งการป้องกันเหล่านั้นก็เหนือกว่า ค้นหาสาเหตุของข้อความแสดงข้อผิดพลาด “ไม่อนุญาตการดำเนินการ” และเรียนรู้วิธีแก้ไข

อะไรเป็นสาเหตุของความคับข้องใจนี้ และคุณจะแก้ไขได้อย่างไร?

ข่าวดีก็คือมันค่อนข้างง่ายที่จะแก้ไข เราเพียงแค่ต้องอัปเดตการตั้งค่าความปลอดภัยและการป้องกันของ Mac ของคุณ! การตั้งค่าระบบ Mojave Mac

สารบัญ

    • กระทู้ที่เกี่ยวข้อง:
  • เริ่มต้นด้วยการปกป้องความสมบูรณ์ของระบบของ Apple
  • วิธีแก้ไขการทำงานของแอปหรือข้อผิดพลาดของเทอร์มินัลไม่ได้รับอนุญาตโดยการให้สิทธิ์แก่ Terminal หรือการเข้าถึงดิสก์แบบเต็มของแอป
    • วิธีให้สิทธิ์การเข้าถึงดิสก์แบบเต็มของแอปหรือเทอร์มินัล
  • รับข้อความแสดงข้อผิดพลาดไม่ได้รับอนุญาตใน macOS High Sierra, Sierra หรือ El Capitan?
  • ต้องการวิธีอื่นหรือไม่? ระวัง!
    • ตรวจสอบสถานะของ SIP ของ macOS (System Integrity Protection)
  • ไม่สามารถอ่านไฟล์ไลบรารีผู้ใช้ใน macOS ได้หรือไม่ คุณเห็นข้อความไม่อนุญาตให้ดำเนินการหรือไม่?
  • เคล็ดลับผู้อ่าน
    • กระทู้ที่เกี่ยวข้อง:
  • 3 เคล็ดลับในการใช้คำสั่ง Terminal เพื่อเพิ่มความเร็วให้ Mac ของคุณ
  • วิธีแก้ไขปัญหาการระบายแบตเตอรี่ของ macOS Mojave
  • Mac ของคุณไม่สามารถสื่อสารกับข้อความแสดงข้อผิดพลาดของ Apple Watched วิธีแก้ไข

เริ่มต้นด้วยการปกป้องความสมบูรณ์ของระบบของ Apple

เริ่มต้นด้วย macOS Mojave Apple ได้เพิ่มมาตรการรักษาความปลอดภัยเพิ่มเติมผ่าน SIP (System Integrity Protection) เพื่อให้ระบบปฏิบัติการของคุณทำงานได้อย่างราบรื่น อันที่จริง “คุณสมบัติ” ใหม่เหล่านี้มีความคล้ายคลึงกันอย่างมากกับการทำงานของ iOS ด้วยการอนุญาตแอพบน iPhone และ iPad ของคุณ!

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

กระบวนการนี้มักทำโดยการอัปเดตอย่างเป็นทางการหรือโปรแกรมติดตั้งของ Apple ผลที่ได้คือบางครั้งผู้ใช้และแอปของบุคคลที่สามไม่สามารถอ่านหรือเขียนในตำแหน่งที่ต้องใช้งาน

ข้อจำกัดนี้ทำให้เกิดข้อความแสดงข้อผิดพลาด “ไม่อนุญาตการดำเนินการ” ส่วนใหญ่

ในขณะที่ SIP มีอยู่ตั้งแต่ El Capitan Apple ได้ขยายการป้องกันใน Mojave ขึ้นไป เป็นผลให้หลายคนได้รับข้อผิดพลาดที่พวกเขาไม่เคยมาก่อน SIP ยังคงอนุญาตให้เข้าถึงบางไดเร็กทอรี เช่น ~/Applications แต่ล็อกไดเร็กทอรีอื่นๆ เช่น ~/System หรือ ~/usr

งานของ SIP (System Integrity Protection) คือการรักษาไว้ ผู้ใช้ทุกประเภท รวมถึงผู้ใช้ที่เป็นผู้ดูแลระบบจากการเปลี่ยนแปลงสิ่งที่ Apple พิจารณาว่าไฟล์ปฏิบัติการที่สำคัญ

และนั่นเป็นสิ่งที่ดีและไม่ดี

ดีสำหรับผู้ที่ยุ่งกับระบบของตนโดยไม่รู้ว่ากำลังทำอะไรอยู่ และไม่ดีสำหรับผู้ที่รู้ว่ากำลังทำอะไรอยู่

แต่เช่นเดียวกับหลายๆ อย่างใน Apple World และในชีวิต มีวิธีแก้ปัญหา

คุณสามารถ อ่านสิ่งที่ Apple พูดเกี่ยวกับ SIP บนเว็บไซต์ของพวกเขา แต่หากต้องการทราบว่าคุณสามารถทำอะไรได้บ้าง โปรดอ่านด้านล่าง

ไปกันเถอะ!

วิธีแก้ไขการทำงานของแอพหรือ Terminal Error ไม่อนุญาตโดย การให้สิทธิ์การเข้าถึงดิสก์แบบเต็มของ Terminal หรือแอป

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

ขอแนะนำให้คุณสำรองข้อมูลล่าสุดและดำเนินการต่อหากคุณมั่นใจในคอมพิวเตอร์

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

ทางออกแรกและที่ต้องการอย่างยิ่งคือการอนุญาตการเข้าถึงดิสก์แบบเต็มไปยังแอปพลิเคชันที่คุณพยายามใช้

โดยทั่วไป ผู้ใช้พบข้อความแสดงข้อผิดพลาดเมื่อเรียกใช้บรรทัดคำสั่งในเทอร์มินัล

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

ซึ่งคล้ายกับการวางอยู่ในไวท์ลิสต์สำหรับ SIP ของ Apple และอนุญาตให้เข้าถึงแบบอ่านหรือเขียนในไดเร็กทอรีทั้งหมด

วิธีให้สิทธิ์การเข้าถึงดิสก์แบบเต็มของแอปหรือเทอร์มินัล

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

ขั้นตอนในการแก้ไข “ไม่อนุญาตให้ดำเนินการ” โดยให้การเข้าถึงดิสก์แบบเต็ม

  1. ปิดแอพ คุณต้องให้สิทธิ์การเข้าถึงดิสก์แบบเต็มก่อน
    1. ยังเป็นความคิดที่ดีที่จะปิดแอพอื่นๆ ทั้งหมดและรีสตาร์ท Mac ของคุณ (*ไม่จำเป็น แต่แนะนำ)
  2. เปิด ค่ากำหนดของระบบ > ความปลอดภัยและความเป็นส่วนตัว > แท็บความเป็นส่วนตัว การตั้งค่าระบบ Mac ความปลอดภัยและความเป็นส่วนตัว
  3. เลือก การเข้าถึงดิสก์แบบเต็ม จากแถบด้านข้างซ้าย
    1. หากคุณไม่สามารถเปลี่ยนแปลงได้ ให้ปลดล็อกดิสก์ของคุณโดยกดไอคอนแม่กุญแจที่มุมล่างซ้ายและป้อนรหัสผ่านผู้ดูแลระบบของคุณ
  4. แตะ + สัญลักษณ์
  5. เพิ่ม แอพ หรือ เทอร์มินัล ไปยังแอปที่ได้รับอนุมัติของคุณด้วยการเข้าถึงแบบเต็ม หากคุณไม่ได้ปิดแอปก่อนหน้านี้ ปิดแอพทันทีถ้ามันทำงานอยู่ แล้วเพิ่มลงในรายการสำหรับการเข้าถึงดิสก์แบบเต็มให้สิทธิ์การเข้าถึงดิสก์แบบเต็มกับแอพใน macOS Mojave
  6. รีสตาร์ทแอพหรือ Terminal และดูว่าตอนนี้ยอมรับคำสั่งของคุณหรือไม่
    1. สำหรับแอพ เมื่อเปิดใหม่อีกครั้ง ให้อนุญาตการเข้าถึงเพื่อทำการเปลี่ยนแปลงในคอมพิวเตอร์ของคุณหากจำเป็น
  7. คุณควรทำสิ่งนี้เพียงครั้งเดียวสำหรับแต่ละแอพหรือ Terminal
  8. ไม่เห็นการเข้าถึงดิสก์แบบเต็มในการตั้งค่าความปลอดภัยและความเป็นส่วนตัวใช่ไหม

หากคุณไม่เห็นการเข้าถึงดิสก์แบบเต็มในแท็บความเป็นส่วนตัวในการตั้งค่าความปลอดภัยและความเป็นส่วนตัว ก่อนอื่นให้ตรวจสอบว่า Mac ของคุณใช้ macOS 10.14 ขึ้นไป ตัวเลือกนี้ไม่มีใน macOS เวอร์ชันก่อนหน้า

หากคุณยืนยันว่า Mac ของคุณใช้ macOS Mojave ขึ้นไป ให้ลองรีสตาร์ทโดยใช้บัญชีผู้ใช้อื่นและดูว่าตัวเลือกปรากฏขึ้นหรือไม่

รับข้อความแสดงข้อผิดพลาดไม่ได้รับอนุญาตใน macOS High Sierra, Sierra หรือ El Capitan?

หากคุณใช้ macOS หรือ Mac OS X El Capitan เวอร์ชันก่อนหน้าและคุณได้รับข้อความนี้ แนวทางที่ดีที่สุดของคุณคือ ทำตามวิธีแก้ไขปัญหาที่สองตามรายการด้านล่างของการปิดใช้งาน System Integrity Protection ของ Mac ชั่วคราว ซึ่งรู้จักกันทั่วไป เป็น SIP

ต้องการวิธีอื่นหรือไม่? ระวัง!

วิธีที่สองและรุนแรงกว่านี้คือการปิด System Integrity Protection (SIP) ของ Apple ทั้งหมด

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

อีกครั้ง โซลูชันสุดขั้วนี้ไม่แนะนำสำหรับผู้ใช้ส่วนใหญ่

ปิดการป้องกันความสมบูรณ์ของระบบ Mac ของคุณชั่วคราว (แนะนำสำหรับผู้ใช้ขั้นสูงเท่านั้น!)

  1. รีสตาร์ทในโหมดการกู้คืน (กด Command + R ค้างไว้เมื่อเริ่มต้น)
  2. เปิดยูทิลิตี้เทอร์มินัล
  3. พิมพ์คำสั่ง csrutil ปิดการใช้งาน
    1. ซึ่งช่วยให้คุณเข้าถึงระบบปฏิบัติการทั้งหมดของ Mac และทุกไฟล์ได้ไม่จำกัด ผู้ใช้ขั้นสูงเท่านั้น
  4. สำหรับผู้ใช้เทอร์มินัล
    1. รีสตาร์ท Mac ของคุณและเปิด Terminal อีกครั้ง
    2. ใช้ Terminal กับคำสั่งที่ส่งผลให้การดำเนินการไม่ได้รับอนุญาต ข้อผิดพลาด
    3. เมื่อเสร็จแล้ว ให้ทำตามขั้นตอนที่ 1-2 แล้วเปิด SIP อีกครั้งโดยใช้คำสั่ง เปิดใช้งาน csrutil 
    4. รีสตาร์ท Mac ของคุณและ SIP ควรกลับมาใช้งานได้อีกครั้ง

อย่าปล่อยให้ความเรียบง่ายของคำสั่งเหล่านี้หลอกคุณ การเลือกที่จะปิด SIP ไม่ควรเป็นเรื่องเล็กน้อย

อย่างไรก็ตาม เมื่อปิดแล้ว คุณจะไม่ถูกจำกัดทั่วทั้งไดเร็กทอรี ไม่มีข้อความแสดงข้อผิดพลาด“ ไม่อนุญาตให้ดำเนินการ” ที่น่ารำคาญอีกต่อไปรบกวนคุณ

เปิด SIP อีกครั้งเมื่อคุณทำงานที่ต้องการการเข้าถึงประเภทนี้เสร็จแล้ว

วิธีเปิด SIP

  1. รีสตาร์ท Mac ของคุณและกด Command + 'R' ค้างไว้เมื่อเปิดขึ้นมาอีกครั้ง
  2. คลิกยูทิลิตี้และเปิด เทอร์มินัล
  3. พิมพ์คำสั่งต่อไปนี้แล้วกด Enter: เปิดใช้งาน csrutil

ตรวจสอบสถานะของ SIP ของ macOS (System Integrity Protection)

หากคุณไม่แน่ใจว่า Mac ของคุณเปิดใช้งานหรือปิดใช้งาน SIP หรือไม่ ให้ใช้คำสั่ง Terminal แบบง่ายเพื่อตรวจสอบ!

  1. เปิดเทอร์มินัลจาก แอปพลิเคชั่น > ยูทิลิตี้
  2. พิมพ์คำสั่งนี้ให้ถูกต้อง: สถานะ csrutil
  3. มองหาหนึ่งในข้อความเหล่านี้:
    1. สถานะการป้องกันความสมบูรณ์ของระบบ: เปิดใช้งาน
    2. สถานะการป้องกันความสมบูรณ์ของระบบ: ปิดใช้งาน เปิดใช้งาน SIP บน Mac ผ่าน Terminal

เปลี่ยนสถานะตามคำแนะนำด้านบน อย่าลืมรีสตาร์ทหลังจากทำการเปลี่ยนแปลงใด ๆ กับ SIP ของ Mac หากไม่ได้ผล ให้รีบูต Mac ของคุณในโหมดการกู้คืน (Command + R) แล้วเข้าสู่ Terminal ผ่าน Recovery จากนั้นพิมพ์คำสั่ง SIP ของคุณ

ไม่สามารถอ่านไฟล์ไลบรารีผู้ใช้ใน macOS ได้หรือไม่ คุณเห็นข้อความไม่อนุญาตให้ดำเนินการหรือไม่?

ผู้อ่านบางคนแจ้งให้เราทราบว่าการเพิ่ม Terminal และแอพอื่นๆ ลงในรายการโปรแกรมที่อนุญาตการเข้าถึงดิสก์แบบเต็ม พวกเขาจะสามารถเข้าถึงและอ่านไดเร็กทอรีและไฟล์ในไลบรารีผู้ใช้ของตนได้

Apple ขยาย SIP ของ macOS (System Integrity Protection) ใน macOS 10.14+ เพื่อรวมโฟลเดอร์และไฟล์บางระบบและไลบรารีไว้ในไดเรกทอรีหลักของผู้ใช้ ที่ซึ่งก่อนหน้านี้คุณสามารถเปิดและเข้าถึงไฟล์ผู้ใช้และไดเรกทอรีเหล่านี้ใน macOS High Sierra/Sierra รุ่นก่อนหน้า ใน macOS Mojave, Catalina ขึ้นไป (เช่น 10.14+) ไฟล์เหล่านี้ เป็นต้น ไม่สามารถอ่านได้อีกต่อไปโดยไม่ต้องปิดใช้งาน SIP หรือได้รับการเข้าถึงดิสก์แบบเต็ม

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

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

เคล็ดลับผู้อ่าน

  • วิธีแก้ปัญหาของฉันคือให้ Full Disk Access แทน /bin/bash ในการทำเช่นนั้น
    1. ไปที่ ค่ากำหนดของระบบ > ความปลอดภัยและความเป็นส่วนตัว > ความเป็นส่วนตัว > การเข้าถึงดิสก์แบบเต็ม
    2. คลิกล็อคและป้อนรหัสผ่านผู้ดูแลระบบเพื่อให้สามารถเปลี่ยนแปลงได้
    3. เปิดหน้าต่างตัวค้นหาใหม่
    4. ไปที่ฮาร์ดไดรฟ์ปฏิบัติการของ Mac (ปกติจะตั้งชื่อว่า Macintosh HD ตามค่าเริ่มต้น) แล้วคลิกปุ่มสามปุ่มเหล่านี้พร้อมกัน: คำสั่ง + Shift + . (สัญลักษณ์ช่วงเวลา). วิธีนี้ช่วยให้คุณเห็นไฟล์ที่ซ่อนอยู่ใน Mac ของคุณ–select /bin. ตรวจสอบให้แน่ใจว่าคุณอยู่ที่รูทไดเร็กทอรีของ Mac ไม่ใช่ไดเร็กทอรีผู้ใช้ของคุณ!
      1. คุณยังสามารถใช้ Finder's ไป > ไปที่โฟลเดอร์... และป้อน /bin/bash
    5. ลาก /bin/bash ไปที่รายการ Full Disk Access
    6. กดไอคอนล็อคเพื่อป้องกันการเปลี่ยนแปลงใด ๆ เพิ่มเติม
แดน เฮลเยอร์( นักเขียนอาวุโส )

Dan เขียนบทช่วยสอนและคำแนะนำในการแก้ปัญหาเพื่อช่วยให้ผู้คนใช้ประโยชน์จากเทคโนโลยีของตนให้เกิดประโยชน์สูงสุด ก่อนที่จะมาเป็นนักเขียน เขาสำเร็จการศึกษาระดับปริญญาตรีด้านเทคโนโลยีเสียง ดูแลการซ่อมที่ Apple Store และสอนภาษาอังกฤษในประเทศจีนด้วย

กระทู้ที่เกี่ยวข้อง: