在 Mac 的‘Terminal Operation Not Permitted 錯誤’中有很多有趣的命令和操作可用。這是一個了不起的工具,可以讓用戶完全控制他們的 Mac 設備。利用SIP(系統完整性保護)命令就是這樣的一個例子。

但是,用戶偶爾會遇到諸如不允許的操作之類的問題。重要的是要認識到,在一年的時間裡,macOS 經歷了無數次升級、改版和變化。目前,macOS Ventura、Monterey、Big Sur、Catalina 和 Mojave 等 macOS 用戶經常遇到此問題。

因此,Mac 用戶經常遇到“不允許操作”的錯誤,以及另一個特定錯誤 zsh:找不到命令。但別擔心;我們將討論可能發生此錯誤的原因。

我們還將研究一些可能的解決方案,這更重要。和往常一樣,macOS 非常獨特;雖然一些用戶可能會發現特定修復對他們有效,但其他用戶可能需要嘗試其他解決方案。但對於大多數 Mac 用戶,我們的通用修復方法有效。

已修復:Mac 上的“不允許終端操作錯誤”問題

修改您的安全設置

打開 Apple 菜單並轉到系統偏好設置。導航到安全和隱私 > 隱私。現在點擊左側窗格中的完整磁盤訪問。單擊鎖定圖標並輸入您的管理員密碼。 單擊加號圖標並轉到以下目錄:/Applications/Utilities/選擇終端。

檢查文件是否被鎖定

打開終端。輸入以下命令:chflags nouchg path/to/the/locked/file

禁用系統完整性保護 (SIP)

重新啟動您的 Mac。計算機開始重新啟動後,按住 Command + R。轉到實用程序 > 終端。運行以下命令: csrutil disable reboot

Enable Full Disk Access

通過系統偏好設置,您可以授予終端全盤訪問權限。通過這樣做,系統將能夠更改系統中存在的所有文件和文件夾。之後將不會出現“不允許操作”錯誤消息。

從菜單欄轉到 Apple > 系統偏好設置。點擊安全和隱私設置。單擊鎖並輸入您的管理員密碼以允許進行新的更改。導航到隱私。從左側面板中選擇完整磁盤訪問。現在,單擊“+”為選定的應用程序提供完整的磁盤訪問權限。從應用程序列表中選擇終端打開它。返回完全磁盤訪問權限並確保終端已標記為完全訪問權限。如果出現提示,請 退出並重新打開終端。最後,單擊鎖以保存您的更改。

更改文件目錄

在菜單欄中,點擊開始計算機。選擇您的主磁盤驅動器(默認情況下,名為 Macintosh HD)。然後,按 Shift + Command + 。 (句點) 查看隱藏文件。現在,導航到 usrbin 文件夾。複製所需文件並將其粘貼到 usrlocalbin 文件夾中。重啟你的電腦。

為什麼 Terminal 說 Operation not permitted

一些 Mac 用戶聲稱 Terminal 在 macOS High Sierra 和更早版本上可以正常運行,但是當他們更新到 macOS Mojave、Catalina、Big Sur、Monterey、或 Ventura,他們會遇到“不允許操作”錯誤。名為“完全磁盤訪問”的新安全功能是造成這種情況的罪魁禍首。

對於沒有完全權限的其他應用程序,將無法訪問 Mac 上的某些數據。 Full Disk Access 要求應用程序被授予完全權限才能訪問用戶保護的文件。此外,在 macOS 10.13 及更早版本上安裝應用程序時,會自動授予完整磁盤訪問權限。

“不允許操作”錯誤也可能由另一個稱為 SIP 的 macOS 功能引起,除了完整磁盤訪問(系統完整性保護)。得益於 OS X 10.11 中添加的機制,系統擁有的文件和目錄不會受到未經授權的更改。如果您嘗試在終端中編輯任何受保護的內容,將出現“不允許操作”消息。

常見問題解答

如何重置我的 Mac 終端?

在 Mac 的鍵盤上,您可以改為按 control + option + command + R。如果您選擇硬重置選項,終端屏幕將與 Mac 中的其他所有內容一起刪除。完成後,將看到黑屏。

Mac 上的默認終端是什麼?

Zsh 是默認的 shell。新的終端窗口和選項卡可以使用不同的外殼打開。選擇“終端”>“設置”,然後在 Mac 上的“終端”應用中點按“通用”。選擇“Shells open with”旁邊的“Command(complete path)”,然後鍵入您要使用的 shell 的完整路徑。

我應該在 Mac 上使用 bash 還是 zsh?

Z shell,也稱為 zsh,是一個 Unix shell,它為 bash 添加了更多功能,bash 是 macOS 的標準 shell。建議使用 zsh 而不是 bash。此外,強烈建議使用 zsh 安裝框架,因為它可以更輕鬆地管理配置、插件和主題。

Mac 上的終端​​是否與命令提示符相同?

您可以使用使用終端應用程序管理 Mac 的命令提示符。你怎麼會想要那樣做?好吧,也許是因為您習慣並喜歡在基於 Unix 的系統中使用命令行。 Mac 命令行界面稱為終端。

By Henry Taylor

我是後端開發人員。 你們中有些人可能在開發者大會上見過我。 最近我一直在做一個開源項目。