操作系統上的文件通常具有權限,這使得文件可供有限數量的人訪問。例如,計算機上的某些文件只有管理員才能訪問;其他文件只能由特定用戶訪問。
如果您嘗試在 Linux 計算機上運行您無權訪問的文件,您將看到權限denied錯誤。在本指南中,我們將討論此錯誤的原因以及如何修復它。讓我們開始吧。
Bash 權限被拒絕
Bash permission denied
錯誤發生在您嘗試運行沒有執行權限的文件時。如果文件只能由您不是其成員的特定用戶或組執行,則可能會發生這種情況。
操作系統上的文件通常具有權限,這使得文件可供有限數量的人訪問。例如,計算機上的某些文件只有管理員才能訪問;其他文件只能由特定用戶訪問。
如果您嘗試在 Linux 計算機上運行您無權訪問的文件,您將看到權限denied錯誤。在本指南中,我們將討論此錯誤的原因以及如何修復它。讓我們開始吧。
Bash permission denied
錯誤發生在您嘗試運行沒有執行權限的文件時。如果文件只能由您不是其成員的特定用戶或組執行,則可能會發生這種情況。
在Linux操作系統上,共有三種權限:
您可能被允許在沒有執行權限的情況下讀取和寫入文件。因此,如果您遇到 Bash 權限被拒絕
,請務必檢查您是否有權運行該文件。您可以使用以下命令檢查您是否對文件具有權限:
ls -la
此命令將提供信息關於文件權限。我們將在本文後面的 The Solution
部分討論此命令的輸出。讓我們看一個帶有 permission denied
錯誤的示例場景,以及相應的解決方案。
我們有一個名為 example.xml 的文件。上海。我們可以通過運行 ls 命令看到這個文件。 ls 命令返回以下內容:
我們要運行我們的example.sh文件。為此,我們可以使用符號 ./:
這個命令允許我們運行example.sh 文件,該文件存在於我們的./ 目錄(我們當前正在查看的目錄)中。讓我們看看當我們嘗試運行文件時會發生什麼:
我們的命令返回錯誤。
我們的 Bash shell 告訴我們沒有權限運行我們的文件。我們可以檢查我們通過運行 ls -la 命令獲得的權限:
我們沒有權限在我們的任何文件上運行。如果在上面輸出的第一個條目中 rw
之後有一個 x
,我們就知道我們可以運行我們的文件了。後面的三個字符第一個代表用戶的讀、寫和執行權限。我們組也沒有寫或執行權限。
要解決這個問題,我們需要授予自己執行權限:
這個命令給了我們的用戶對例子的執行權限(“x”)。 sh 文件。
只有在允許修改文件權限的情況下,我們才能運行此命令。如果此文件受到保護(例如由 root 擁有),我們將無法編輯此文件。
該文件歸系統用戶 james
所有所以我可以更改我的 james
帳戶的文件權限。我也可以使用 sudo
來更改文件的權限,儘管這不是必需的,因為我的用戶帳戶具有必要的訪問權限。
Bash
想了解更多關於 Bash 的信息嗎?查看我們的 命令行學習指南 < /a>。附帶有關如何學習 Bash 的最佳提示。您還將找到一個資源列表,以幫助您加快學習過程。