Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Mac

Khắc Phục Lỗi 'Zsh Permission Denied' Trong macOS Terminal: Hướng Dẫn Bước Đi Bước

Khi bạn mở tệp hoặc thư mục trong macOS Terminal rồi nhập lệnh sửa đổi, cửa sổ bật lên nhãn "zsh: permission denied" hoặc "zsh: command not found". Bạn đang gặp vấn đề này? Nếu có, bài viết hữu ích vì nó nói cách sửa lỗi "Zsh permission denied" trên Mac chi tiết:

Mục lục:

  • 1. Zsh là gì?
  • 2. Zsh: permission denied trong macOS Terminal là gì?
  • 3. Tại sao bạn gặp lỗi permission denied trong Terminal?
  • 4. Cách sửa lỗi Zsh permission denied trên Mac?
  • 5. Cách tránh lỗi permission denied trên Mac?
  • 6. Câu hỏi thường gặp về Zsh permission denied trên Mac

Chia sẻ cho những người cũng mắc vấn đề này!

Zsh là gì?

Z shell (Zsh) là shell Unix dùng làm shell đăng nhập tương tác và trình thông dịch lệnh cho shell scripting. Nó được thiết kế và xây dựng trên nền bash - shell mặc định macOS - và bao gồm tính năng của ksh và tcsh.

Zsh dễ dùng hơn khi cấu hình plugin và theme. Theme trông đẹp và gọn hơn. Quan trọng nhất, nó không yêu cầu quyền người dùng nghiêm ngặt.

Zsh: permission denied trong macOS Terminal là gì?

Giống như tên lỗi cho thấy, đây là lỗi quyền ngăn người dùng Mac mở tệp dùng lệnh. Có thể xảy ra với lệnh sudo hoặc thậm chí lệnh bash. Theo báo cáo, lỗi "Zsh: Permission denied" cũng xảy ra ngay khi tệp mở ở quyền root.

Hầu hết báo cáo nói lỗi xuất hiện khi cố gắng mở tệp cài đặt (installer) qua Terminal. Hoặc khi kéo tệp vào cửa sổ Terminal, lỗi "permission denied" bật lên. Tuy nhiên, lỗi này có thể xảy ra với bất kỳ tệp nào.

Khắc Phục Lỗi  Zsh Permission Denied  Trong macOS Terminal: Hướng Dẫn Bước Đi Bước

Tại sao bạn gặp lỗi permission denied trong Terminal?

Có nhiều lý do bạn gặp lỗi Zsh permission denied trên Mac. Những lý do phổ biến nhất:

Tệp bị khóa

Khi bạn cố cài đặt chương trình hoặc sửa tệp bị khóa, rất có thể gặp lỗi permission denied. Có thể do bạn không có đặc quyền admin, hoặc người tạo tệp dùng chmod khóa tệp. Lỗi permission báo hiệu lệnh của bạn cố ghi vào thư mục mà tài khoản người dùng không sở hữu.

Lệnh chmod X hoặc lệnh hệ thống không đúng

Lý do khác bạn gặp lỗi này là bạn có thể nhập sai lệnh chmod x hoặc lệnh hệ thống khác. Đảm bảo dùng đúng lệnh. Nếu cố chạy ứng dụng, hãy chắc lệnh chương trình hợp lệ và cài trên máy.

Cách sửa lỗi Zsh permission denied trên Mac?

Trước khi sửa lỗi Zsh permission denied trên Mac, hãy sao chép các tệp liên quan. Bạn có thể cần tệp sao lưu sau nếu có sự cố. Vì khi ép buộc lệnh chạy, có rủi ro làm hỏng hệ thống và gây thêm vấn đề. Hãy chuẩn bị sẵn sàng.

Cũng cần tối ưu hóa Mac ngăn các vấn đề khác nảy sinh. Nó cũng dọn dẹp hệ thống để quy trình chạy mượt. Xong rồi, khởi động lại Mac và xem hướng dẫn khắc phục dưới.

Bước 1: Kiểm tra quyền của bạn.

  1. Khởi chạy Terminal từ Mac Dock hoặc Utilities.
  2. Gõ lệnh sau, thêm khoảng trắng sau ký tự cuối. Chưa nhấn Enter.
    ls -l
  3. Kéo tệp muốn mở thả vào cửa sổ Terminal. Tự động thêm đường dẫn tệp vào lệnh. Tuy nhiên, không di chuyển thực sự tệp.
  4. Nhấp cửa sổ Terminal, nhấn Enter.

Điều này cho thấy bạn có quyền ghi/sửa tệp hay không.

Bước 2: Thay đổi quyền sở hữu thư mục.

Để thay đổi quyền sở hữu thư mục, dùng lệnh chown. Nhập lệnh này trong Terminal, nhấn Enter:

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

Thay $USER bằng người dùng hiện tại đăng nhập và /path/to/directory bằng đường dẫn nơi bạn muốn ghi.

Bước 3: Cấp quyền truy cập đĩa đầy đủ cho Terminal.

Có thể Terminal không có quyền truy cập đầy đủ đĩa, gây macOS terminal permission denied. Quyền truy cập đĩa đầy đủ không được cấp cũng gây lỗi Terminal "Operation not permitted". Để sửa, vào System Preferences > Security & Privacy > Privacy panel, thêm Terminal vào danh sách Full Disk Access (Truy cập đĩa đầy đủ).

Khắc Phục Lỗi  Zsh Permission Denied  Trong macOS Terminal: Hướng Dẫn Bước Đi Bước

Bước 4: Dùng lệnh sudo.

Lệnh sudo đơn giản nhưng đủ mạnh cho phép thực hiện hầu hết lệnh từ Terminal. Nếu gặp vấn đề Mac permission denied, dùng sudo commands trong Terminal. Chỉ cần thêm sudo trước lệnh gốc. Ví dụ lệnh:

sudo chmod 755 /dvtcolorconvert.rb

sudo chmod 755 ~/Themes/ObsidianCode.xccolortheme

Bạn sẽ được nhắc nhập mật khẩu nếu lần đầu dùng sudo. Sau đó, không cần nhập mỗi lần dùng sudo.

Bây giờ, kiểm tra xem vấn đề Zsh permission denied trên Mac đã giải quyết chưa. Nếu chưa, thử tải app Oh My Zsh xử lý. Oh My Zsh là khung mã nguồn mở quản lý cấu hình Zsh trên macOS và Linux.

Đã giải quyết? Chia sẻ niềm vui cho người khác.

Cách tránh lỗi permission denied trên Mac của bạn?

Để tránh lỗi macOS Terminal permission denied sau này, bạn có thể thay đổi cài đặt quyền trên Mac xác định ai xem và sửa tệp. Dưới đây là vài cách:

Phương pháp 1: Gán quyền cho người dùng và nhóm

  1. Trên Mac, chọn ổ cứng, thư mục, hoặc tệp, chọn File > Get Info.
  2. Nhấp biểu tượng khóa mở khóa.
  3. Nhập tên và mật khẩu quản trị.
  4. Nhấp người dùng hoặc nhóm cột Name, chọn cài đặt đặc quyền từ menu bật lên.
    Read & Write (Đọc & Ghi): Cho phép mở mục và thay đổi.
    Read Only (Chỉ đọc): Cho phép mở nhưng không thay đổi nội dung.
    Write Only (Chỉ ghi): Biến thư mục thành Drop Box. Người dùng copy mục vào Drop Box, nhưng không mở được. Chỉ chủ Drop Box mở được.

Khắc Phục Lỗi  Zsh Permission Denied  Trong macOS Terminal: Hướng Dẫn Bước Đi Bước

Phương pháp 2: Áp dụng quyền cho tất cả mục trong thư mục hoặc ổ cứng

  1. Trên Mac, chọn thư mục hoặc ổ cứng, chọn File > Get Info.
  2. Nhấp biểu tượng khóa mở khóa.
  3. Nhập tên và mật khẩu quản trị.
  4. Nhấp menu bật lên Action, chọn "Apply to enclosed items" (Áp dụng cho mục bên trong).

Khắc Phục Lỗi  Zsh Permission Denied  Trong macOS Terminal: Hướng Dẫn Bước Đi Bước

Phương pháp 3: Thêm hoặc xóa người dùng/nhóm trong cột Name

  1. Trên Mac, chọn mục, chọn File > Get Info.
  2. Nhấp biểu tượng ổ khóa mở khóa.
  3. Nhập tên và mật khẩu quản trị.
  4. Trong phần Sharing & Permissions, làm bất kỳ việc sau:
    Thêm người dùng/nhóm: Nhấp nút Add (+) dưới danh sách, chọn người dùng/nhóm, nhấp Select.
    Xóa người dùng/nhóm: Chọn người dùng/nhóm, nhấp nút Remove (-) dưới danh sách.

Chia sẻ cho nhiều người về hướng dẫn hữu ích này!

Câu hỏi thường gặp về Zsh permission denied trên Mac

Q: Zsh có phải mặc định trên Mac không?
A Từ macOS Catalina, Mac bắt đầu dùng Zsh làm shell đăng nhập mặc định và shell tương tác trên toàn hệ điều hành.

Q: Tại sao Terminal Mac báo permission denied?
A Lý do bạn gặp lỗi permission denied là bạn không phải quản trị viên, hoặc chủ tệp dùng chmod khóa tệp.