สารบัญ:
- 1. ทำไม Terminal ถึงบอก Operation not permitted
- 2. วิธีแก้ข้อผิดพลาด Operation not permitted
- 3. สรุป
- 4. คำถามที่พบบ่อย (FAQ)
Terminal เป็นยูทิลิตี้มาตรฐานของ macOS ช่วยเข้าถึงระบบผ่านคำสั่ง文字 (Command line) ดูไดเรกทอรี จัดการโปรเซส ล้าง Startup Disk ฯลฯ ยังใช้รัน iBoysoft Data Recovery ใน macOS Recovery เพื่อกู้ข้อมูลจาก Mac ที่บูทไม่ได้
แต่พอพิมพ์คำสั่ง เช่น ls หรือ kill process Terminal ตอบว่า "Operation not permitted" หรือ "zsh: command not found" หมายถึงอะไร? หลายคนเจอข้อผิดพลาดนี้บน macOS Mojave ถึง Monterey ล่าสุด อ่านต่อเพื่อเข้าใจสาเหตุและวิธีแก้
ทำไม Terminal ถึงบอก Operation not permitted
บางคนบอก Terminal ใช้ได้ดีบน High Sierra แต่หลังอัปเดตเป็น Mojave, Catalina, Big Sur, Monterey ก็เจอข้อผิดพลาดนี้ สาเหตุคือฟีเจอร์ความปลอดภัยใหม่: Full Disk Access
Full Disk Access กำหนดให้แอปต้องได้รับอนุญาตเต็มสิทธิ์ถึงจะเข้าถึงไฟล์ที่ระบบป้องกันได้ แอปที่ไม่ได้รับอนุญาต จะเข้าถึงข้อมูลบางส่วนไม่ได้ บน macOS 10.13 หรือเก่ากว่า Full Disk Access จะให้อัตโนมัติตอนติดตั้งแอป
นอกจากนี้ SIP (System Integrity Protection) ก็อาจเป็นสาเหตุ ฟีเจอร์นี้มาตั้งแต่ OS X 10.11 ป้องกันไฟล์/โฟลเดอร์ระบบไม่ให้แก้ไขโดยไม่ได้ตั้งใจ ถ้าพยายามแก้ไขผ่าน Terminal → จะขึ้น "Operation not permitted"
วิธีแก้ข้อผิดพลาด Operation not permitted
สาเหตุคือ Full Disk Access หรือ SIP → แก้ได้ 2 ทาง:
เปิด Full Disk Access ให้ Terminal
- เมนู Apple → System Preferences
- เลือก Security & Privacy
- แท็บ Privacy → หา Full Disk Access ด้านซ้าย
- กดไอคอนล็อกซ้ายล่าง → ใส่รหัส/ใช้ Touch ID
- ถ้า Terminal อยู่ในรายการแล้วแต่ยังไม่ติ๊ก → ติ๊ก → เลือก Quit & Reopen
- ถ้ายังไม่มีในรายการ → กด + → หา Terminal ใน Applications → Open
- Terminal จะปรากฏในรายการพร้อมติ๊ก
- เปิด Terminal ใหม่ ลองพิมพ์คำสั่งเดิมดูว่าทำงานได้ไหม

ปิด SIP ชั่วคราว (Disable System Integrity Protection)
เปิด Full Disk Access แล้วยังขึ้น Operation not permitted → ปิด SIP ชั่วคราว (จำเป็นสำหรับ Developer ทดสอบโค้ด Debug ติดตั้ง System Extension) หลังเสร็จ ต้องเปิด SIP กลับทันที เพื่อป้องกันไวรัส/มัลแวร์
- Shutdown → บูทเข้า macOS Recovery Mode
- เมนู Utilities → Terminal
- พิมพ์คำสั่ง:
csrutil disable - กด Return/Enter
- Apple menu → Restart
- เปิด Terminal ปกติ → รันคำสั่งเดิม

เปิด SIP กลับ: ทำซ้ำข้างต้น แต่พิมพ์ csrutil enable แทน
สรุป
Terminal บอก "Operation not permitted" = คุณไม่มีสิทธิ์เข้าถึงไฟล์/โฟลเดอร์ที่ระบบป้องกันอยู่ แก้ได้ 2 ทาง: 1) เปิด Full Disk Access ให้ Terminal 2) ปิด SIP ชั่วคราวใน Recovery Mode (จำเป็นต้องเปิดกลับหลังเสร็จ)
คำถามที่พบบ่อย (FAQ)
Q: แก้ Operation not permitted บน Mac ยังไง?
A: 1) เปิด Full Disk Access ให้ Terminal ใน System Preferences ก่อน 2) ถ้ายังไม่หาย ปิด SIP ชั่วคราวใน Recovery Mode
Q: ให้ Full Disk Access บน Mac ยังไง?
A: ซอฟต์แวร์บางตัว (Backup, Data Recovery เช่น iBoysoft Data Recovery) ต้องการ Full Disk Access → Apple menu > System Preferences > Security & Privacy > Privacy → หา Full Disk Access ด้านซ้าย → กด + เพิ่มแอปที่ไว้ใจ