疑難排解 Mac OS X 中的權限問題
摘要
瞭解關於 Mac OS X 中的權限 (或「權限 (privilege)」) 概念、由於權限設定不正確所可能引發的問題,以及如何加以疑難排解。
受影響的產品
Mac OS 安裝/設定 (任何版本)
使用修復權限工具程式
大部分的 Mac OS X 使用者都不會刻意修改權限,而只需要一個工具程式將系統權限重設為其正確的預設值。 如果您擁有 Mac OS X 10.2 和以上版本,則作業系統中已包括此工具程式。 如果您擁有 Mac OS X 10.1,則可以下載它。 如果是 10.0 到 10.1.4 版,則必須先更新為 10.1.5 版。
如果是 Mac OS X 10.2 或以上版本,請開啟「磁碟工具程式」 (/Applications/Utilities/)。 請從 [磁碟工具程式] 視窗左邊直欄中選取您的 Mac OS X 啟動卷宗,然後按一下 [修理工具] 標籤。 按一下 [修復磁碟權限] 按鈕。您可能會看到一則錯誤訊息。
如果您修改過 /Library/Receipts 檔案夾的內容,則「修復權限」功能將不會如預期般運作。 修復權限需要擁有 Apple 安裝的軟體許可。 此外,工具程式只能修復 Apple 安裝的軟體和檔案夾 (不包括使用者的個人專屬資料夾)。
如需更多資訊,請參閱<關於磁碟工具程式的修復磁碟權限功能 (Mac OS X 10.2、10.3)>。
本文件的其餘部分包含了一些更進階的資訊。
Note: 在 Mac OS X 10.5 和以上版本中,當從 Mac OS X 10.5 安裝光碟啟動 (「開機」) 時,可以使用「重設密碼」工具程式重設使用者的個人專屬目錄權限。
警告: 本文件說明了如何通過在終端機應用程式中輸入指令來修改權限設定。 不熟悉 Terminal 和 UNIX 式環境的使用者應小心進行作業。 輸入不正確的指令可能會導致資料流失及/或系統軟體無法使用。 不當修改權限可能會降低系統的安全性及/或造成私密資料外洩。
定義的權限
Mac OS X 納入了一個以 UNIX 作業系統為基礎的子系統,它在檔案系統中使用權限。 硬碟中的每個檔案和檔案夾都有一個相關聯的權限集,決定誰可以讀取、寫入或執行它。 下面使用 AppleWorks 應用程式及其一個文件作為示例解釋權限的意義:
- 讀取 (r--)
如果您有 AppleWorks 文件的讀取權限,您就可以打開它。 - 寫入 (-w-)
如果您有 AppleWorks 文件的寫入權限,那麼您就可以儲存對其所做的變更。 - 執行 (--x)
如果您有 AppleWorks 應用程式的執行權限,您就可以打開它。
另外請注意,您必須擁有所能開啟之檔案夾的執行權限;因此,「檔案共享」需要針對 ~/Public 檔案夾為其他人、全世界、每個人設定執行權限;而「Web 共享」需要 ~/Sites 資料夾適用的相同設定。
當您可以執行這全部的三種作業時,您就擁有了「rwx」權限。 檔案夾的權限與此類似。 具有包含文件的檔案夾的唯讀權限時,您可以開啟和讀取其中的文件,但是不能儲存對該檔案夾所做的變更,也不能為該檔案夾加入新的文件。 例如,唯讀 (r--) 權限是常用於訪客存取的共享檔案。
擁有者、群組、其他
像 "rwx" 和 "r-x" 這樣的縮寫描述了一個使用者或實體的權限。 每個檔案或檔案夾的權限設定都定義了三個實體的存取權:擁有者、群組和其他。
- 擁有者 - 擁有者通常是建立檔案的使用者。 您個人專屬目錄下的幾乎所有的檔案和檔案夾都將您的使用者名稱列為擁有者。
- 群組 - Admin 使用者就是一些稱為 "staff" 和 "admin" 之群組的成員。 超級使用者 "root" 是這些及數個其他群組的成員。 非 admin 使用者僅為 "staff" 的成員。 一般而言,所有檔案及檔案夾都會指定給 "staff"、"admin" 或 "wheel"。
- 其他 - 其他是指某個檔案或檔案夾的擁有者或群組成員之外的其他所有使用者。
由於每個實體都有其自己的權限,一個完整的權限集範例可能為 "-rwxrw-r--"。 前面的連字符指定項目是一個檔案而不是檔案夾。 檔案夾權限以 "d" 開頭,如 "drwxrw-r--"。 "d" 代表目錄,表示檔案夾。 圖 2 (如下所示) 描述了它在 Terminal 應用程式中的情況。
將權限縮寫為數字
有時,您可能會認為鍵入 "-rwxrwxr-x" 有些麻煩。 正是如此, 這就是為什麼會有一種簡便方式,將權限缩寫成範圍為 777 (-rwxrwxrwx) 到 000 (no access) 的數字。 "rwx" 就可以寫成 7 (1、2 、4 的和),其中 4 表示讀取、2 表示寫入、1 表示執行。 0 表示沒有任何存取權限。 3 位數字可以分別表示擁有者、群組和其他的權限總和。 因此,範例 "-rwxrwxr-x" 就可寫成 775。
範例:建立 TextEdit 文件
假設您建立了一個 TextEdit 文件,並將它儲存到個人專屬目錄下的 Documents 檔案夾中。 文件具有 "-rw-r--r--" 權限,因此,您可以讀取和寫入檔案;但是指定的群組及任何其他使用者只能讀取它。 由於您將檔案儲存在您的 Documents 檔案夾 (drwx------) 中,所以群組及其他使用者甚至不能查看您的檔案。 檔案夾的權限將會取代內含檔案自己的權限。 這就是 Mac OS X 的個人專屬目錄結構提供私密性的方式。 如果您將該檔案拖曳到您的 Public 檔案夾 (drwxr-xr-x) 中並登出,那麼其他使用者可以登入到該電腦並讀取您的公用檔案。
新檔案和檔案夾的預設設定
擁有權設定
- 使用者是指建立新檔案或檔案夾的使用者。
- 群組是指建立檔案或檔案夾之使用者的預設群組。
權限
- 檔案夾或目錄: drwxr-xr-x
- 檔案: -rw-r--r--
Root:「最高階使用者」
在 Mac OS X 中,最高階使用者名為 root,在安裝系統時建立。 root 使用者對電腦上的所有檔案和檔案夾都具有完整的存取權,另外還具有一般使用者所沒有的管理存取權。 在電腦的日常使用上,您不需要以 root 使用者的身份登入。 實際上,root 使用者在預設情況下是停用的。
與權限相關的問題
權限設定不正確可能會導致非預期的行為。 以下是疑難排解建議事項的幾個範例:
- 應用程式安裝程式、Applications 檔案夾
第三方應用程式的安裝程式對它所安裝檔案、甚至整個 Applications 檔案夾的權限設定不正確。 Application 檔案權限設定不正確的症狀包括應用程式在桌面上顯示為問號及/或不能連線到 Internet。 以某使用者的身份登入時安裝的軟體在以另一個使用者身份登入也可能是不可存取的。 要避免這種情况,請確保在安裝想要用於一般使用者帳戶的軟體時,以該使用者帳戶登入。
- 在 Mac OS 9 中建立的檔案
在 Mac OS 9 中建立的檔案很可能在 Mac OS X 中顯示具有 root 擁有權。 當您在同時安裝了 Mac OS X 的電腦上啟動 Mac OS 9 時,您可以查看、移動和刪除所有的檔案,這等同於您具有 root 權限。 因此,在啟動 Mac OS 9 時最好不要移動或開啟不熟悉的檔案或檔案夾。
- 電源中斷
檔案系統可能會受電源中斷 (不正確關閉) 或停止回應 (「暫停」或「凍結」) 所影響。 這可能會影響權限。 您可能必須使用fsck。
- Software access=user access
使用者所執行的大部分應用程式只能存取該使用者具有存取權限的檔案。 例如,備份軟體並無法備份具有 root 擁有權的 Mac OS X 系統檔案。
- 清空垃圾桶
在某些情況下,您沒有寫入權限的檔案夾最終會放入「垃圾桶」中;您將無法刪除它們或其內包含的檔案。 請記住,在 Mac OS X 中並沒有單一的 Trash 檔案夾。 而是在每位使用者的個人專屬目錄中都有一個 Trash 檔案夾 (名為 .Trash)。 啟動卷宗也有一個 Trash 檔案夾,其他卷宗或磁碟都有 Trash 檔案夾。 當某個使用者將一個檔案擲出到本機非啟動卷宗中時,該卷宗中的檔案夾名為 "/.Trashes/UID",其中 UID 是該使用者的使用者 ID 號碼 (可以在 NetInfo Manager 中查看該號碼)。 無論是哪種情況,在 Finder 中,所有 Trash 檔案夾對於使用者都是隱藏的。 在這些情況下,您可以啟動 Mac OS 9 來找出和刪除檔案,也可以使用 Terminal 應用程式。 在 Mac OS X 10.2 或以上版本中很少出現清空「垃圾桶」的問題,因為 Finder 是以 root 使用者身份清空「垃圾桶」。 不過,對於您的本機 root 使用者不具有特殊權限的遠端卷宗中的檔案,仍可能出現問題。
Warning: 鍵入錯誤或誤用 "rm -rf" 指令可能會導致資料流失。 例如,在錯誤的地方插入空格可能會導致完全刪除硬碟中的資料。 您可能希望將以下的指令複製並貼到文字編輯器以驗證間距。 請遵循下列步驟來刪除已登入使用者的「垃圾桶」:
- 開啟 Terminal 應用程式。
- 輸入: sudo rm -rf
注意:請在 -rf 後面輸入一個空格。 若沒有空格,指令將無法運作。 在步驟 6 之前都不要按 Return 鍵。 - 開啟您的「垃圾桶」。
- 從 [編輯] 選單中選擇 [全選]。
- 將所有的「垃圾桶」拖曳到 [終端機] 視窗中。 這會導致 [終端機] 視窗自動填入您「垃圾桶」中每個項目的名稱和位置。
- 按 Return 鍵。
這時您「垃圾桶」中的所有項目都會刪除。 作為替代方法,您可以執行下面這些指令。 第二個和第三個指令將會刪除屬於其他使用者的「垃圾桶」。 這些指令為:
警告:鍵入錯誤或誤用 "rm -rf" 指令可能會導致資料流失。 例如,在錯誤的地方插入空格可能會導致完全刪除硬碟中的資料。 您可能希望將以下的指令複製並貼到文字編輯器以驗證間距。
重要事項:下面的 "/" 與 ".Trash" 或 ".Trashes" 之間沒有空格。
sudo rm -rf ~/.Trash/
sudo rm -rf /.Trashes/
sudo rm -rf /Volumes/
Note: 若要結束 sudo 工作階段,您可以執行 exit 指令,也可以登出 Mac OS X,然後重新登入。
個別情況下,這將會永久刪除目前使用者的「垃圾桶」、啟動卷宗「垃圾桶」及其他卷宗「垃圾桶」(如果有的話) 中的所有檔案。 這些指令無法刪除鎖定的檔案。 您必須先取消鎖定它們。
注意:sudo 指令可以用來暫時取得超級使用者的狀態,來變更其他情況下無法變更的的文件的權限。 但是,只有您以管理員帳戶登入才能使用它,並且它需要管理員帳戶使用者密碼以進行身份驗證。
如何在 Finder 的 [簡介] 視窗中檢視和變更權限
Mac OS X Finder 可用來檢閱和修改某些檔案和檔案夾的權限設定。 您只能變更您是其擁有者的檔案和檔案夾的權限。 這有助於疑難排解與權限相關的問題。 若要在 [簡介] 視窗中檢視和變更權限,請遵循下列步驟:
- 在 Finder 中選取檔案或檔案夾。
- 從檔案選單中,選擇顯示。
- 從 [簡介] 視窗的彈出式選單中選擇權限。
- 視需要使用彈出式選單變更權限設定 (圖 1)。
- 選擇性:如果您要變更檔案夾的權限,並且希望變更也能套用到內含的檔案夾,請按一下 [套用]。 [套用] 只會在您顯示資料夾的資訊時出現。
注意:使用 [簡介] 視窗所做的變更會在完成變更後立即生效,即使是在關閉視窗之前亦然。

圖 1 [簡介] 視窗中的權限
使用終端機檢視和變更權限
Terminal 應用程式位於 Applications 檔案夾的 Utilities 檔案夾中。 使用終端機可以檢閱或變更權限。 和 Finder [簡介] 視窗所不同者,sudo 指令讓您擁有 root 存取權的便利性,卻不必先登出再以 root 身分重新登入。
Warning: 必須具備指令行的基本知識才能利用這套工具。 使用 Terminal 應用程式不當,可能會導致資料遺失及/或無法使用系統軟體。
若要判定檔案或檔案夾的權限設定,請開啟「終端機」並瀏覽至該檔案或檔案夾所在之目錄。 然後執行指令 "ls -l"。 輸出會如圖 2 中所示。

圖 2 使用終端機檢視權限
在圖 2 的例子中,所有使用者皆可讀取 "File Name1.ext",因為已為 Others 設定讀取位元 (r)。 但此檔案僅能由 root 變更,因為只啟用了 Owner 的寫入位元 (w),而其為 root。 如果此檔案不是系統檔案,而您希望能夠從一般帳戶加以修改,可以使用下列指令變更擁有者:
sudo chown yourusername "File Name1.ext"
檔案是 root 所擁有,而非登入的使用者所擁有,因此 "sudo" 指令可以提供您暫時的 root 存取權 。 將 yourusername 取代為您帳戶的簡短名稱。
空格語法:請小心在「終端機」內的檔案路徑中輸入空格。 在範例中,檔案名稱是用引號括住,因為其包含空格。 或者,您可以將空格取代為反斜線後接一個空格。 若沒有引號,相同的指令會輸入為:
sudo chown yourusername File\ Name1.ext
如需有關擁有權、群組和權限的更多資訊,請參閱 chown、chgrp 和 chmod 的線上說明 (參考手冊) 頁面。 您可以執行 man
man chmod
預設情況下,線上說明頁面會一次顯示一頁。 若要閱讀下一頁,請按空格鍵。 若要結束線上說明頁面,請按 Q 鍵。