Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Mac

แก้ Error Zsh Permission Denied ใน macOS Terminal: คู่มือทีละขั้นตอน

เมื่อคุณเปิดไฟล์หรือโฟลเดอร์ใน macOS Terminal และพิมพ์คำสั่งเพื่อแก้ไขมัน ป๊อปอัปโผล่ขึ้นมาติดป้ายว่า "zsh: permission denied" หรือ "zsh: command not found" คุณกำลังเผชิญปัญหานี้อยู่ไหม? ถ้าใช่ บทความนี้ควรช่วยได้ เพราะมันบอก วิธีแก้ Error "Zsh permission denied" บน Mac อย่างละเอียด:

สารบัญ:

  • 1. Zsh คืออะไร?
  • 2. Zsh: Permission Denied ใน macOS Terminal คืออะไร?
  • 3. ทำไมคุณถึงเจอ Error Permission Denied ใน Terminal?
  • 4. วิธีแก้ Zsh Permission Denied Error บน Mac?
  • 5. วิธีป้องกัน Error Permission Denied บน Mac?
  • 6. คำถามที่พบบ่อยเกี่ยวกับ Zsh Permission Denied บน Mac

แชร์ให้คนที่ติดปัญหาแบบนี้ด้วย!

 

Zsh คืออะไร?

Z Shell หรือ Zsh เป็น Unix Shell ที่สามารถใช้เป็น Interactive Login Shell และเป็น Command Interpreter สำหรับ Shell Scripting มันถูกออกแบบและสร้างบนพื้นฐานของ Bash - Default Shell ของ macOS และครอบคลุมฟีเจอร์บางส่วนของ ksh และ tcsh

Zsh ใช้งานง่ายมากเมื่อตั้งค่า Plugins และ Themes รวมถึง Themes ของมันดูสวยและเรียบร้อยกว่า สำคัญที่สุด มันไม่ได้ต้องการ User Permissions ที่เข้มงวด

Zsh: Permission Denied ใน macOS Terminal คืออะไร?

เหมือนชื่อ Error บ่งชี้ มันคือ Permission Error ที่ป้องกันผู้ใช้ Mac ไม่ให้เปิดไฟล์โดยใช้คำสั่ง อาจเกิดขึ้นกับคำสั่ง Sudo หรือแม้แต่คำสั่ง Bash ตามรายงานหลายรายการ Error "Zsh: Permission Denied" อาจเกิดขึ้นแม้ไฟล์จะถูกเปิดใน Root

รายงานส่วนใหญ่บอกว่า Error ปรากฏเมื่อพวกเขาพยายามเปิด File Installer ผ่าน Terminal หรือเมื่อลากไฟล์ไปที่หน้าต่าง Terminal Error "Permission Denied" โผล่ขึ้นมา อย่างไรก็ตาม นี่อาจเกิดขึ้นกับไฟล์อื่นๆ ได้เช่นกัน

แก้ Error Zsh Permission Denied ใน macOS Terminal: คู่มือทีละขั้นตอน

ทำไมคุณถึงเจอ Error Permission Denied ใน Terminal?

มีหลายเหตุผลที่เป็นไปได้ว่าทำไมคุณถึงเจอ Zsh Permission Denied Error บน Mac ของคุณ ส่วนที่พบบ่อยที่สุดมีดังนี้:

ไฟล์ถูกล็อก (Locked)

เมื่อคุณพยายามติดตั้งโปรแกรมหรือแก้ไขไฟล์ที่ถูกล็อก คุณน่าจะเจอ Permission Denied Error อาจเป็นเพราะคุณไม่มีสิทธิ์ Administrator หรือเพราะผู้สร้างไฟล์ใช้ chmod ล็อกไฟล์ Error สิทธิ์เป็นการบ่งชี้ว่าคำสั่งของคุณพยายามเขียนไปยัง Directory ที่บัญชีผู้ใช้ของคุณไม่ได้เป็นเจ้าของ

คำสั่ง chmod X หรือ System Command ผิด

อีกเหตุผลที่คุณเจอ Error นี้คือ คุณอาจพิมพ์คำสั่ง chmod x หรือ System Commands อื่นๆ ผิด ให้แน่ใจว่าคุณใช้คำสั่งที่ถูกต้อง ถ้าคุณพยายามรันแอปพลิเคชัน ให้แน่ใจว่าคำสั่งโปรแกรมถูกต้องและติดตั้งบนคอมพิวเตอร์

วิธีแก้ Zsh Permission Denied Error บน Mac?

ก่อนแก้ Zsh Permission Denied Error ใน Mac ให้ทำสำเนาไฟล์ที่เกี่ยวข้องทั้งหมดที่คุณมี คุณอาจต้องการไฟล์สำรองภายหลังถ้ามีอะไรผิดพลาด เพราะเมื่อคุณพยายามบังคับให้คำสั่งทำงาน มีความเสียหายที่อาจทำให้ระบบของคุณพังและทำให้เกิดปัญหามากขึ้น มาทำให้พร้อมก่อน

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

ขั้นตอนที่ 1: ตรวจสอบสิทธิ์ของคุณ

  1. เปิด Terminal จาก Mac Dock หรือ Utilities
  2. พิมพ์คำสั่งต่อไปนี้ และเพิ่ม Space หลังตัวอักษรสุดท้าย อย่ากด Enter ตอนนี้: ls -l
  3. ลากไฟล์ที่คุณต้องการเปิด และวางลงในหน้าต่าง Terminal นี่จะเพิ่มตำแหน่งไฟล์เข้าไปในคำสั่งที่มีอยู่อัตโนมัติ อย่างไรก็ตาม นี่จะไม่ย้ายไฟล์จริงๆ
  4. ตอนนี้คลิกที่หน้าต่าง Terminal และกด Enter

นี่จะแสดงว่าคุณมีสิทธิ์เขียนหรือแก้ไขไฟล์หรือไม่

ขั้นตอนที่ 2: เปลี่ยน Ownership ของ Directory

เพื่อเปลี่ยน Ownership ของ Directory คุณสามารถใช้คำสั่ง chown ใส่คำสั่งนี้ใน Terminal แล้วกด Enter:

chown -R $USER:$USER /path/to/directory

เปลี่ยน $USER ด้วยผู้ใช้ที่ล็อกอินอยู่ และ /path/to/directory ด้วย Path ไปยังที่ที่คุณต้องการเขียน

ขั้นตอนที่ 3: ให้ Terminal เข้าถึงดิสก์เต็มที่ (Full Disk Access)

เป็นไปได้อีกอย่างว่า Terminal ไม่ได้รับการเข้าถึงดิสก์เต็มที่ ซึ่งเป็นเหตุผลที่ macOS Terminal Permission ถูกปฏิเสธ การไม่ให้ Full Disk Access อาจทำให้เกิด Terminal Error "Operation not permitted" ด้วย เพื่อแก้ ไปที่ System Preferences > Security & Privacy > Privacy Panel แล้วเพิ่ม Terminal ในรายการ Full Disk Access

แก้ Error Zsh Permission Denied ใน macOS Terminal: คู่มือทีละขั้นตอน

ขั้นตอนที่ 4: ใช้คำสั่ง Sudo

คำสั่ง Sudo เรียบง่ายแรงพอที่จะให้คุณรันคำสั่งเกือบทุกอย่างจาก Terminal ดังนั้น หากคุณเจอปัญหา Mac Permission Denied ให้ใช้ Sudo Commands ใน Terminal วิธีทำคือ เพิ่ม sudo หน้าคำสั่งเดิม นี่คือตัวอย่างคำสั่ง:

sudo chmod 755 /dvtcolorconvert.rb

sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme

คุณจะถูกขอให้ใส่รหัสผ่านถ้านี่คือครั้งแรกที่ใช้คำสั่ง Sudo แต่หลังจากนั้น คุณไม่ต้องใส่ทุกครั้งที่ใช้คำสั่ง Sudo

ตอนนี้ เช็กว่าปัญหา Zsh Permission Denied บน Mac แก้ไขแล้วหรือยัง ถ้ายัง ลองดาวน์โหลดแอป Oh My Zsh เพื่อจัดการได้ Oh My Zsh เป็น Open-source Framework ที่ใช้จัดการ Zsh Configurations บน macOS และ Linux

แก้ปัญหาแล้ว? มาแชร์ความสุขกับคนอื่นๆ

 

วิธีป้องกัน Error Permission Denied บน Mac?

เพื่อหลีกเลี่ยง macOS Terminal Permission Denied Errors ในอนาคต คุณสามารถ เปลี่ยนการตั้งค่าสิทธิ์บน Mac เพื่อกำหนดว่าใครสามารถดูและแก้ไขไฟล์ได้ ด้านล่างคือวิธีบางอย่าง:

วิธีที่ 1: กำหนดสิทธิ์ให้ Users และ Groups

  1. บน Mac ของคุณ เลือก Disk, Folder, หรือ File แล้วเลือก File > Get Info
  2. คลิกไอคอนล็อกเพื่อปลดล็อก
  3. ใส่ชื่อ Administrator และรหัสผ่าน
  4. คลิก User หรือ Group ในคอลัมน์ Name แล้วเลือกการตั้งค่าสิทธิ์จากเมนูป๊อปอัป
    Read & Write: อนุญาตให้ผู้ใช้เปิดไอเท็มและเปลี่ยนมัน
    Read Only: อนุญาตให้ผู้ใช้เปิดไอเท็มแต่ไม่เปลี่ยนเนื้อหา
    Write Only: ทำให้โฟลเดอร์กลายเป็น Drop Box ผู้ใช้สามารถคัดลอกไอเท็มไป Drop Box แต่เปิดไม่ได้ เฉพาะเจ้าของ Drop Box เท่านั้นที่เปิดได้

แก้ Error Zsh Permission Denied ใน macOS Terminal: คู่มือทีละขั้นตอน

วิธีที่ 2: ใช้สิทธิ์กับทุกไอเท็มในโฟลเดอร์หรือดิสก์

  1. บน Mac ของคุณ เลือก Folder หรือ Disk แล้วเลือก File > Get Info
  2. คลิกไอคอนล็อกเพื่อปลดล็อก
  3. ใส่ชื่อ Administrator และรหัสผ่าน
  4. คลิกเมนูป๊อปอัป Action แล้วเลือก "Apply to enclosed items"

แก้ Error Zsh Permission Denied ใน macOS Terminal: คู่มือทีละขั้นตอน

วิธีที่ 3: เพิ่มหรือลบ User หรือ Group ในคอลัมน์ Name

  1. บน Mac ของคุณ เลือก Item แล้วเลือก File > Get Info
  2. คลิกไอคอน Padlock เพื่อปลดล็อก
  3. ใส่ชื่อ Administrator และรหัสผ่าน
  4. ในส่วน Sharing & Permissions ทำอย่างใดอย่างหนึ่ง:
    เพิ่ม User หรือ Group: คลิกปุ่ม Add (+) ด้านล่างรายการ เลือก User หรือ Group แล้วคลิก Select
    ลบ User หรือ Group: เลือก User หรือ Group แล้วคลิกปุ่ม Remove (-) ด้านล่างรายการ

แชร์ให้คนอื่นมากขึ้นเกี่ยวกับคู่มือที่ช่วยได้นี้!

 

คำถามที่พบบ่อยเกี่ยวกับ Zsh Permission Denied บน Mac

QIs Zsh default on Mac? A

ตั้งแต่ macOS Catalina Mac เริ่มใช้ Zsh เป็น Default Login Shell และ Interactive Shell ทั่วทั้งระบบปฏิบัติการ

QWhy does my Mac Terminal say permission denied? A

เหตุผลที่คุณเจอ Error Permission Denied คือ คุณไม่ใช่ Administrator หรือเพราะเจ้าของไฟล์ใช้ chmod ล็อกไฟล์