macOS companion app

สิทธิ์อนุญาตของ macOS

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

ข้อกำหนดเพื่อให้สิทธิ์คงที่

  • พาธเดิม: เรียกใช้แอปจากตำแหน่งที่แน่นอน (สำหรับ OpenClaw คือ dist/OpenClaw.app)
  • ตัวระบุบันเดิลเดิม: ID บันเดิลของ OpenClaw คือ ai.openclaw.mac; การเปลี่ยนค่านี้จะสร้างอัตลักษณ์สิทธิ์ใหม่
  • แอปที่ลงนามแล้ว: บิลด์ที่ไม่ได้ลงนามหรือลงนามแบบ ad-hoc จะไม่เก็บรักษาสิทธิ์ไว้
  • ลายเซ็นที่สม่ำเสมอ: ใช้ใบรับรอง Apple Development หรือ Developer ID จริง เพื่อให้ลายเซ็นคงที่ในทุกการบิลด์ใหม่

ลายเซ็นแบบ ad-hoc จะสร้างอัตลักษณ์ใหม่ในทุกบิลด์ macOS จะลืมสิทธิ์ที่เคยอนุญาต และข้อความแจ้งขอสิทธิ์อาจหายไปทั้งหมดจนกว่าจะล้างรายการที่ค้างอยู่

การอนุญาต Accessibility สำหรับรันไทม์ Node และ CLI

ควรอนุญาต Accessibility ให้ OpenClaw.app, Peekaboo.app หรือตัวช่วยอื่นที่ลงนามแล้วและมีตัวระบุบันเดิลของตนเอง แทนที่จะอนุญาตให้ไบนารี node ทั่วไป

TCC ของ macOS อนุญาต Accessibility ให้แก่อัตลักษณ์โค้ดของโพรเซสที่ตรวจพบ หากเวิร์กโฟลว์ Homebrew, nvm, pnpm หรือ npm ทำให้ไฟล์ปฏิบัติการ node ที่ใช้ร่วมกันได้รับสิทธิ์ Accessibility แพ็กเกจ JavaScript ใดก็ตามที่เรียกใช้ผ่านไฟล์ปฏิบัติการเดียวกันนั้นอาจสืบทอดสิทธิ์การทำงานอัตโนมัติของ GUI

ให้ถือว่ารายการ node ใน System Settings เป็นสิทธิ์แบบกว้างสำหรับรันไทม์ Node นั้น ไม่ใช่สิทธิ์สำหรับแพ็กเกจ npm เพียงแพ็กเกจเดียว หลีกเลี่ยงการอนุญาต Accessibility ให้ node เว้นแต่คุณจะเชื่อถือสคริปต์และแพ็กเกจทั้งหมดที่เรียกใช้ผ่านการติดตั้ง Node ชุดนั้นโดยเฉพาะ

การอนุมัติ Accessibility ไม่ได้เปิดใช้งานการแชร์กิจกรรม Settings -> Permissions -> Active computer detection เป็นการควบคุมแยกต่างหากซึ่งปิดไว้โดยค่าเริ่มต้น สำหรับแชร์ระยะเวลาที่ไม่มีการใช้งานแบบจำกัดกับ Gateway ของคุณ การปิดตัวเลือกนี้จะล้างกิจกรรมที่เก็บไว้โดยไม่เพิกถอน Accessibility หรือตัดการเชื่อมต่อ Node

หากคุณอนุญาต Accessibility ให้ node โดยไม่ได้ตั้งใจ ให้นำรายการนั้นออกจาก System Settings -> Privacy & Security -> Accessibility จากนั้นจึงอนุญาตให้แอปหรือตัวช่วยที่ลงนามแล้วซึ่งควรเป็นเจ้าของการทำงานอัตโนมัติของ UI

รายการตรวจสอบเพื่อกู้คืนเมื่อข้อความแจ้งขอสิทธิ์หายไป

  1. ออกจากแอป
  2. นำรายการแอปออกจาก System Settings -> Privacy & Security
  3. เปิดแอปอีกครั้งจากพาธเดิมและอนุญาตสิทธิ์ใหม่
  4. หากข้อความแจ้งยังไม่ปรากฏ ให้รีเซ็ตรายการ TCC ด้วย tccutil แล้วลองอีกครั้ง
  5. สิทธิ์บางรายการจะปรากฏอีกครั้งหลังจากรีสตาร์ท macOS โดยสมบูรณ์เท่านั้น

ตัวอย่างการรีเซ็ต (โดยใช้ ID บันเดิลของ OpenClaw คือ ai.openclaw.mac):

bash
sudo tccutil reset Accessibility ai.openclaw.macsudo tccutil reset ScreenCapture ai.openclaw.macsudo tccutil reset AppleEvents

สิทธิ์สำหรับไฟล์และโฟลเดอร์ (Desktop/Documents/Downloads)

macOS อาจควบคุมการเข้าถึง Desktop, Documents และ Downloads สำหรับโพรเซสในเทอร์มินัลหรือเบื้องหลังด้วย หากการอ่านไฟล์หรือการแสดงรายการไดเรกทอรีค้าง ให้อนุญาตการเข้าถึงแก่บริบทโพรเซสเดียวกับที่ดำเนินการกับไฟล์ (ตัวอย่างเช่น Terminal/iTerm, แอปที่เรียกใช้โดย LaunchAgent หรือโพรเซส SSH)

วิธีแก้ขัด: ย้ายไฟล์ไปยังพื้นที่ทำงานของ OpenClaw (~/.openclaw/workspace) หากต้องการหลีกเลี่ยงการอนุญาตสิทธิ์แยกแต่ละโฟลเดอร์

หากกำลังทดสอบสิทธิ์ ให้ลงนามด้วยใบรับรองจริงเสมอ บิลด์แบบ ad-hoc ยอมรับได้เฉพาะการเรียกใช้ภายในเครื่องแบบรวดเร็วที่สิทธิ์ไม่มีความสำคัญเท่านั้น

เนื้อหาที่เกี่ยวข้อง

Was this useful?
On this page

On this page