หาก.commandสคริปต์ที่เชื่อถือได้แสดงข้อความ “ไม่สามารถเรียกใช้ไฟล์ได้เนื่องจากคุณไม่มีสิทธิ์เข้าถึงที่เหมาะสม” โดยปกติแล้วสคริปต์นั้นต้องการสิทธิ์ในการเรียกใช้ ใน Terminal ให้เพิ่มสิทธิ์นั้นให้กับบัญชีของคุณโดย ใช้คำสั่ง `execute` chmod u+xจากนั้นเรียกใช้สคริปต์อีกครั้ง การดำเนินการนี้จะเปลี่ยนบิตสิทธิ์ของไฟล์ แต่จะไม่ตรวจสอบความถูกต้องของสคริปต์หรือข้ามการตรวจสอบความปลอดภัยของ macOS ดังนั้น โปรดตรวจสอบไฟล์และเชื่อถือแหล่งที่มาของไฟล์ก่อนที่จะเรียกใช้
ก่อนเปลี่ยนสิทธิ์การเข้าถึง โปรดตรวจสอบไฟล์ก่อน
ตรวจสอบให้แน่ใจว่าไฟล์นั้นลงท้ายด้วยนามสกุลที่ถูกต้อง.commandและคุณรู้ว่าไฟล์นั้นมาจากที่ไหน สคริปต์คำสั่งสามารถเรียกใช้คำสั่งเทอร์มินัลโดยใช้สิทธิ์การเข้าถึงบัญชีของคุณ หากคุณไม่ได้คาดหวังว่าจะได้รับไฟล์นั้น หรือไม่สามารถตรวจสอบแหล่งที่มาได้ อย่าเรียกใช้ไฟล์นั้น ให้เปิดไฟล์นั้นในโปรแกรมแก้ไขข้อความเพื่อตรวจสอบเนื้อหา หรือขอสำเนาที่ถูกต้องจากผู้พัฒนา
หน้าต่าง Get Info ของ Finder มีประโยชน์สำหรับการตรวจสอบชื่อไฟล์และสิทธิ์การแชร์ทั่วไป แต่ไม่มีตัวควบคุมที่ง่ายสำหรับการเพิ่มบิตการเรียกใช้เชลล์ให้กับสคริปต์ Apple ได้ระบุchmodวิธีการใช้เทอร์มินัลในการทำให้สคริปต์เชลล์สามารถเรียกใช้งานได้ในคู่มือผู้ใช้เทอร์มินัล ของ ตน
ตัวอย่างการแสดงผลไฟล์สคริปต์ .command ในโฟลเดอร์ดาวน์โหลดใน Finder
แก้ไขสิทธิ์ในการเรียกใช้งาน
เปิดเทอร์มินัล ใช้ Spotlight หรือเปิด แอปพลิเคชัน > ยูทิลิตี้ > เทอร์มินัล
ให้สิทธิ์ในการเรียกใช้งานแก่บัญชีของคุณ สำหรับสคริปต์ในโฟลเดอร์ดาวน์โหลดที่มีชื่อว่าscript.commandให้ป้อนคำสั่งนี้แล้วกด Enter:
chmod u+x "$HOME/Downloads/script.command"
แทนที่ตำแหน่งและชื่อไฟล์ตัวอย่างด้วยเส้นทางจริง ควรใส่เครื่องหมายอัญประกาศครอบเส้นทาง โดยเฉพาะอย่างยิ่งหากชื่อโฟลเดอร์หรือไฟล์มีช่องว่าง นอกจากนี้ คุณยังสามารถพิมพ์chmod u+x (รวมถึงช่องว่างสุดท้าย) แล้วลากไฟล์จาก Finder ไปยังหน้าต่าง Terminal เพื่อแทรกเส้นทางได้ อย่าพิมพ์คำว่า “path to file” ตรงๆ
คำสั่ง chmod u+x จะเพิ่มสิทธิ์ในการเรียกใช้งานให้กับเจ้าของไฟล์
โดยปกติคำสั่งจะกลับไปยังพร้อมท์โดยไม่แสดงข้อความแสดงความสำเร็จuหมายถึงเจ้าของไฟล์ และ+xเพิ่มสิทธิ์ในการเรียกใช้งาน ซึ่งมีขอบเขตจำกัดกว่าการทำให้สคริปต์สามารถเรียกใช้งานได้สำหรับทุกบัญชีบน Mac ไม่ควรต้องใช้รหัสผ่านผู้ดูแลระบบเมื่อคุณเป็นเจ้าของไฟล์และสามารถเปลี่ยนแปลงสิทธิ์การเข้าถึงได้
เรียกใช้สคริปต์ หากไฟล์อยู่ในโฟลเดอร์ดาวน์โหลด ให้ป้อน:
cd "$HOME/Downloads"
./script.command
นอกจากนี้ คุณยังสามารถดับเบิ้ลคลิกไฟล์ใน Finder หลังจากเปลี่ยนสิทธิ์การเข้าถึงแล้ว การเรียกใช้คำสั่งจาก Terminal มีประโยชน์เพราะคุณสามารถอ่านข้อความแสดงข้อผิดพลาดหรือผลลัพธ์ได้ หาก macOS แสดงคำเตือนเมื่อคุณวางคำสั่งลงใน Terminal โปรดอ่านคำเตือนก่อนดำเนินการต่อ
ตัวอย่างหน้าจอเทอร์มินัลหลังจากเรียกใช้สคริปต์จากโฟลเดอร์ของมัน
ตรวจสอบสิทธิ์การเข้าถึงหากข้อผิดพลาดยังคงอยู่
หากต้องการตรวจสอบสิทธิ์การเข้าถึงไฟล์ ให้รันคำสั่ง:
ls -l "$HOME/Downloads/script.command"
เมื่อบัญชีปัจจุบันเป็นเจ้าของไฟล์และมีการตั้งค่าสิทธิ์ในการเรียกใช้งาน กลุ่มสิทธิ์แรกควรมีxเช่นคู่มือสิทธิ์การใช้งาน Mac -rwxของ Apple อธิบายว่าการเข้าถึงไฟล์และโฟลเดอร์แตกต่างกันอย่างไรในแต่ละผู้ใช้
ใช้คำสั่ง ls -l เพื่อตรวจสอบว่าสตริงสิทธิ์ของเจ้าของมีตัวอักษร x อยู่ด้วยหรือไม่
คำสั่งดังกล่าวแจ้งว่า “ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว” เส้นทางหรือชื่อไฟล์ไม่ตรงกัน ใน Finder ให้ตรวจสอบชื่อและตำแหน่งที่ตั้ง จากนั้นลองใช้คำสั่งเดิมอีกครั้งโดยระบุเส้นทางที่ถูกต้อง
ข้อความที่แสดงอาจเป็น “การดำเนินการไม่ได้รับอนุญาต” หรือ “การอนุญาตถูกปฏิเสธ” คุณอาจไม่ได้เป็นเจ้าของไฟล์ หรือโฟลเดอร์หลักอาจไม่อนุญาตให้เข้าถึง ให้ย้ายสำเนาไฟล์ไปยังโฟลเดอร์ที่คุณเป็นเจ้าของ เช่น โฟลเดอร์ดาวน์โหลด หรือขอให้เจ้าของไฟล์หรือผู้ดูแลระบบ Mac ของคุณแก้ไขสิทธิ์การเข้าถึง หลีกเลี่ยงการเพิ่มไฟล์โดยตรงsudoเป็นขั้นตอนแรก
ไฟล์มีสิทธิ์ในการเรียกใช้งาน แต่ก็ยังไม่สามารถทำงานได้ ตรวจสอบว่าไฟล์นั้นเป็นสคริปต์ที่ถูกต้อง และบรรทัดแรกของไฟล์ระบุชื่อตัวแปลภาษาที่ใช้งานได้ หากข้อความอ้างถึงแอปที่ Apple ตรวจสอบไม่ได้ นักพัฒนาที่ไม่ระบุชื่อ หรือมัลแวร์ นั่นเป็นคำเตือนจาก Gatekeeper หรือมัลแวร์ ไม่ใช่ข้อผิดพลาดเกี่ยวกับสิทธิ์ในการเรียกใช้งาน
อย่าลดความปลอดภัยของ macOS เพื่อแก้ไขปัญหาการอนุญาตไฟล์
อย่าใช้คำสั่งนี้chmod a+xเว้นแต่คุณต้องการให้บัญชีผู้ใช้ในเครื่องอื่นมีสิทธิ์ในการเรียกใช้งาน และหลีกเลี่ยงคำสั่งกว้างๆ เช่นchmod -Rหรือการเปลี่ยนแปลงสิทธิ์ในโฟลเดอร์ระบบ หากต้องการยกเลิกสิทธิ์การเรียกใช้งานที่คุณเพิ่มให้กับบัญชีของคุณ ให้เรียกใช้คำสั่งchmod u-x "$HOME/Downloads/script.command".
สำหรับข้อความแจ้งเตือนการตรวจสอบแอป ให้ปฏิบัติตามคำแนะนำของ Apple ในการเปิดแอปอย่างปลอดภัย เฉพาะเมื่อคุณยืนยันแล้วว่าแอปนั้นมาจากแหล่งที่น่าเชื่อถือ อย่าเพิกเฉยต่อคำเตือนที่ระบุว่าซอฟต์แวร์จะทำให้คอมพิวเตอร์ของคุณเสียหาย หรือ macOS ตรวจพบมัลแวร์ Apple ยังได้อธิบายการป้องกันการวางข้อความใน Terminal เวอร์ชันใหม่กว่าไว้ในคู่มือการป้องกัน Terminal และสคริปต์ ด้วย