修正 Linux 或 macOS 系統中的 zsh 錯誤:權限被拒絕
當您嘗試在 Linux 或 Mac 上執行命令但沒有必要的執行權限時,就會出現「zsh: permission denied」錯誤。例如,您可能對一個沒有寫入權限的目錄執行了 `ls` 命令,或執行了執行您使用者無權執行的操作的腳本。這裡所說的「權限」指的是讀取或寫入權限。

讓我們先來看看導致這個錯誤的主要原因,然後我們可以嘗試每種解決方案,看看哪種解決方案最好。
當您沒有該檔案的執行、寫入或讀取權限時,主要會發生此錯誤。
假設我們身處 Linux 作業系統上的 Zsh shell 中,並且您正在嘗試使用「cat」命令查看檔案的內容,但您收到「權限被拒絕」錯誤。

要解決此錯誤,我們首先需要查看檔案權限。執行“ls -l”命令即可查看權限。

如您所見,權限設定使得只有 root 使用者和 root 群組才能讀取該文件,而只有 root 使用者才能寫入該文件。
1. 使用 sudo
要解決這個問題,最簡單的方法是在要執行的指令前加上「sudo」參數。這將以root用戶身份執行該命令。此外,如果您確信要執行的命令或任務不會損害您的計算機,也可以使用「sudo」。
因此,我們可以進行以下操作:

sudo cat 文件
2. 更改檔案權限
下一步我們可以嘗試更改檔案權限。由於「權限被拒絕」錯誤通常是由讀取或寫入權限引起的,我們可以更改此檔案或相關檔案的權限。

透過在檔案所在的目錄中執行「ls -l」 ,我們可以看到該檔案的擁有者和所屬群組都是 root。
我們可以將所有者更改為我們的用戶,然後對該文件進行任何我們想做的操作。

我們可以進行以下操作:
sudo chown [使用者] [檔案名稱]
在我們的範例中,由於 v3n0m 是我們登入時使用的用戶,我們將發出以下命令:
sudo chown v3n0m 文件
v3n0m 是我們的用戶名。在你的情況下,它就是你的用戶名。
現在我們可以對該檔案執行 cat 命令,因為它不會再出現權限被拒絕的錯誤。
3. 賦予執法權
在 Zsh 或其他 shell 中,您可以使用 `./` 加上檔案名稱來執行檔案。但是,如果該檔案沒有設定執行權限,您將收到「zsh: 權限被拒絕」的錯誤。

假設我們要執行一個名為 script1 的腳本。我們在終端機中輸入 ./script1,然後得到以下錯誤:
我們執行 `ls -la` 指令來查看檔案的權限。正如你所看到的,該檔案的執行權限未被設定。
解決方法很簡單:給文件添加執行權限。
我們發出簡單的命令

chmod +x script1
` chmod +x`會將執行位加入到檔案擁有者、群組和其他使用者的權限中。
現在我們可以透過輸入 ` ./ script1`將該檔案當作程式運行,而不會出現任何錯誤。
如果您在 Linux 系統上遇到此錯誤,它應該會自動解決;但是,如果您在 macOS 或 Gradle 系統上遇到此錯誤,請繼續閱讀本文。
編輯您的 zshrc 檔案(macOS)
一些 macOS 用戶報告稱,當他們不在要執行命令的目錄中時,使用 `zsh` 會出現問題。
如果你遇到類似的問題,解決方法很簡單。
您需要修改` home/username`目錄下的` .zshrc`文件,並將以下內容新增至文件末端。
設定選項 auto_cd
這將啟用`zsh` 中的` auto_cd`選項。
若要編輯 ` .zshrc`文件,您可以使用任何圖形文字編輯器或命令列文字編輯器,例如 `vim` 或 `vi`。
使用 CHMOD 指令設定權限(Gradle)
如果您正在使用 Gradle,但 `gradlew` 檔案沒有正確的權限,則可能會出現「zsh: 權限被拒絕」錯誤。
要解決此類錯誤,您需要在 Gradlew 上設定正確的權限。
你可以在終端機中輸入這條命令,
chmod 755 gradlew
這將使 ` gradlew`檔案可執行,錯誤將被修復。
或者,您也可以直接輸入以下指令:` chmod +x gradlew`
這將使 `gradlew` 檔案變為可執行檔。
如果以上方法都無法解決您的問題,請在下方留言,我們的技術人員將盡快為您提供協助。
評論被關閉。