ทำงานกับ Terminal Utility ของ Mac แต่ได้รับข้อความแสดงข้อผิดพลาดว่า "ไม่อนุญาตให้ดำเนินการ" คำสั่ง Terminal ที่เคยทำงานใน macOS High Sierra และ Sierra ไม่ทำงานหรือไม่
หากคุณไม่ได้อยู่คนเดียว โปรแกรมอ่าน Mac ขั้นสูงของเราบางส่วนบอกเราว่างานของพวกเขาถูกขัดขวางโดยข้อความแสดงข้อผิดพลาด "ไม่อนุญาตการดำเนินการ" นี้ พวกเขาเห็นข้อผิดพลาดนี้ในคำสั่งขั้นสูงเช่น super-user sudo และเปลี่ยนคำสั่ง chown ความเป็นเจ้าของ แต่ยังรวมถึงคำสั่งง่ายๆ เช่น list directory command ls และอื่นๆ อะไรจะวุ่นวาย!
ผู้ใช้หลายคนต้องเผชิญกับข้อความแสดงข้อผิดพลาดที่น่ารำคาญนี้ตั้งแต่อัปเดตเป็น macOS Catalina-Mojave
เกิดขึ้นเมื่อเรียกใช้แอปพลิเคชันของบุคคลที่สามหรือหลังจากป้อนบรรทัดคำสั่งใน Terminal ไม่ว่าคำขอจะง่ายเพียงใด!
ข้อความแสดงข้อผิดพลาด "ไม่อนุญาตให้ดำเนินการ" ปรากฏขึ้นแม้ในขณะที่พยายามอ่านไดเรกทอรีบางรายการในผู้ใช้ในพื้นที่!
macOS นั้นเชื่อถือได้และได้รับการปกป้องอย่างดี แต่บางครั้งการป้องกันเหล่านั้นก็เหนือกว่า ค้นหาสาเหตุของข้อความแสดงข้อผิดพลาด “ไม่อนุญาตการดำเนินการ” และเรียนรู้วิธีแก้ไข
อะไรเป็นสาเหตุของความคับข้องใจนี้ และคุณจะแก้ไขได้อย่างไร?
ข่าวดีก็คือมันค่อนข้างง่ายที่จะแก้ไข เราเพียงแค่ต้องอัปเดตการตั้งค่าความปลอดภัยและการป้องกันของ 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
ขั้นตอนในการแก้ไข “ไม่อนุญาตให้ดำเนินการ” โดยให้การเข้าถึงดิสก์แบบเต็ม
-
ปิดแอพ คุณต้องให้สิทธิ์การเข้าถึงดิสก์แบบเต็มก่อน
- ยังเป็นความคิดที่ดีที่จะปิดแอพอื่นๆ ทั้งหมดและรีสตาร์ท Mac ของคุณ (*ไม่จำเป็น แต่แนะนำ)
- เปิด ค่ากำหนดของระบบ > ความปลอดภัยและความเป็นส่วนตัว > แท็บความเป็นส่วนตัว
- เลือก การเข้าถึงดิสก์แบบเต็ม จากแถบด้านข้างซ้าย
- หากคุณไม่สามารถเปลี่ยนแปลงได้ ให้ปลดล็อกดิสก์ของคุณโดยกดไอคอนแม่กุญแจที่มุมล่างซ้ายและป้อนรหัสผ่านผู้ดูแลระบบของคุณ
- แตะ + สัญลักษณ์
- เพิ่ม แอพ หรือ เทอร์มินัล ไปยังแอปที่ได้รับอนุมัติของคุณด้วยการเข้าถึงแบบเต็ม หากคุณไม่ได้ปิดแอปก่อนหน้านี้ ปิดแอพทันทีถ้ามันทำงานอยู่ แล้วเพิ่มลงในรายการสำหรับการเข้าถึงดิสก์แบบเต็ม
-
รีสตาร์ทแอพหรือ Terminal และดูว่าตอนนี้ยอมรับคำสั่งของคุณหรือไม่
- สำหรับแอพ เมื่อเปิดใหม่อีกครั้ง ให้อนุญาตการเข้าถึงเพื่อทำการเปลี่ยนแปลงในคอมพิวเตอร์ของคุณหากจำเป็น
- คุณควรทำสิ่งนี้เพียงครั้งเดียวสำหรับแต่ละแอพหรือ Terminal
- ไม่เห็นการเข้าถึงดิสก์แบบเต็มในการตั้งค่าความปลอดภัยและความเป็นส่วนตัวใช่ไหม
หากคุณไม่เห็นการเข้าถึงดิสก์แบบเต็มในแท็บความเป็นส่วนตัวในการตั้งค่าความปลอดภัยและความเป็นส่วนตัว ก่อนอื่นให้ตรวจสอบว่า 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 ของคุณชั่วคราว (แนะนำสำหรับผู้ใช้ขั้นสูงเท่านั้น!)
- รีสตาร์ทในโหมดการกู้คืน (กด Command + R ค้างไว้เมื่อเริ่มต้น)
- เปิดยูทิลิตี้เทอร์มินัล
- พิมพ์คำสั่ง csrutil ปิดการใช้งาน
- ซึ่งช่วยให้คุณเข้าถึงระบบปฏิบัติการทั้งหมดของ Mac และทุกไฟล์ได้ไม่จำกัด ผู้ใช้ขั้นสูงเท่านั้น
- สำหรับผู้ใช้เทอร์มินัล
- รีสตาร์ท Mac ของคุณและเปิด Terminal อีกครั้ง
- ใช้ Terminal กับคำสั่งที่ส่งผลให้การดำเนินการไม่ได้รับอนุญาต ข้อผิดพลาด
- เมื่อเสร็จแล้ว ให้ทำตามขั้นตอนที่ 1-2 แล้วเปิด SIP อีกครั้งโดยใช้คำสั่ง เปิดใช้งาน csrutil
- รีสตาร์ท Mac ของคุณและ SIP ควรกลับมาใช้งานได้อีกครั้ง
อย่าปล่อยให้ความเรียบง่ายของคำสั่งเหล่านี้หลอกคุณ การเลือกที่จะปิด SIP ไม่ควรเป็นเรื่องเล็กน้อย
อย่างไรก็ตาม เมื่อปิดแล้ว คุณจะไม่ถูกจำกัดทั่วทั้งไดเร็กทอรี ไม่มีข้อความแสดงข้อผิดพลาด“ ไม่อนุญาตให้ดำเนินการ” ที่น่ารำคาญอีกต่อไปรบกวนคุณ
เปิด SIP อีกครั้งเมื่อคุณทำงานที่ต้องการการเข้าถึงประเภทนี้เสร็จแล้ว
วิธีเปิด SIP
- รีสตาร์ท Mac ของคุณและกด Command + 'R' ค้างไว้เมื่อเปิดขึ้นมาอีกครั้ง
- คลิกยูทิลิตี้และเปิด เทอร์มินัล
- พิมพ์คำสั่งต่อไปนี้แล้วกด Enter: เปิดใช้งาน csrutil
ตรวจสอบสถานะของ SIP ของ macOS (System Integrity Protection)
หากคุณไม่แน่ใจว่า Mac ของคุณเปิดใช้งานหรือปิดใช้งาน SIP หรือไม่ ให้ใช้คำสั่ง Terminal แบบง่ายเพื่อตรวจสอบ!
- เปิดเทอร์มินัลจาก แอปพลิเคชั่น > ยูทิลิตี้
- พิมพ์คำสั่งนี้ให้ถูกต้อง: สถานะ csrutil
- มองหาหนึ่งในข้อความเหล่านี้:
- สถานะการป้องกันความสมบูรณ์ของระบบ: เปิดใช้งาน
- สถานะการป้องกันความสมบูรณ์ของระบบ: ปิดใช้งาน
เปลี่ยนสถานะตามคำแนะนำด้านบน อย่าลืมรีสตาร์ทหลังจากทำการเปลี่ยนแปลงใด ๆ กับ 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 ในการทำเช่นนั้น
- ไปที่ ค่ากำหนดของระบบ > ความปลอดภัยและความเป็นส่วนตัว > ความเป็นส่วนตัว > การเข้าถึงดิสก์แบบเต็ม
- คลิกล็อคและป้อนรหัสผ่านผู้ดูแลระบบเพื่อให้สามารถเปลี่ยนแปลงได้
- เปิดหน้าต่างตัวค้นหาใหม่
- ไปที่ฮาร์ดไดรฟ์ปฏิบัติการของ Mac (ปกติจะตั้งชื่อว่า Macintosh HD ตามค่าเริ่มต้น) แล้วคลิกปุ่มสามปุ่มเหล่านี้พร้อมกัน: คำสั่ง + Shift + . (สัญลักษณ์ช่วงเวลา). วิธีนี้ช่วยให้คุณเห็นไฟล์ที่ซ่อนอยู่ใน Mac ของคุณ–select /bin. ตรวจสอบให้แน่ใจว่าคุณอยู่ที่รูทไดเร็กทอรีของ Mac ไม่ใช่ไดเร็กทอรีผู้ใช้ของคุณ!
- คุณยังสามารถใช้ Finder's ไป > ไปที่โฟลเดอร์... และป้อน /bin/bash
- ลาก /bin/bash ไปที่รายการ Full Disk Access
- กดไอคอนล็อคเพื่อป้องกันการเปลี่ยนแปลงใด ๆ เพิ่มเติม
Dan เขียนบทช่วยสอนและคำแนะนำในการแก้ปัญหาเพื่อช่วยให้ผู้คนใช้ประโยชน์จากเทคโนโลยีของตนให้เกิดประโยชน์สูงสุด ก่อนที่จะมาเป็นนักเขียน เขาสำเร็จการศึกษาระดับปริญญาตรีด้านเทคโนโลยีเสียง ดูแลการซ่อมที่ Apple Store และสอนภาษาอังกฤษในประเทศจีนด้วย