我想將檔案安裝到 OS-X 10.8 上的 /Library/Python/2.7/site-packages 中。我以管理員身份登錄,但仍然收到錯誤“權限被拒絕”。當我嘗試從終端建立目錄時出現相同的錯誤。我顯然沒有寫入根區域的權限。我該如何解決?
答案1
以「管理員」登入 MacOSX 會授予您執行某些特權命令的權限,但不會使您成為 root 使用者(使用者 ID 0 - 超級使用者)。 Python 目錄以及 /Library 下的大多數內容僅由 root 擁有和寫入:例如
mymac:Python kentalt$ ls -l
total 0
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.3
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.5
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.6
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.7
mymac:Python kentalt$ touch foo
touch: foo: Permission denied
管理員可以使用 sudo (以 root 使用者身分執行命令)並透過您的管理員:
mymac:Python kentalt$ sudo touch foo
Password:
mymac: Python kentalt$ ls -l
total 0
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.3
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.5
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.6
drwxr-xr-x 3 root wheel 102 Jun 20 2012 2.7
-rw-r--r-- 1 root wheel 0 Jan 10 08:57 foo
請注意,您必須對每個此類命令使用 sudo(如果您在短時間內執行多個此類命令,則不會每次都詢問您的密碼):
mymac:Python kentalt$ rm foo
override rw-r--r-- root/wheel for foo? y
rm: foo: Permission denied
mymac:Python kentalt$ sudo rm foo
mymac:Python kentalt$ ls
2.3 2.5 2.6 2.7
您還可以更改目錄權限以允許群組或每個人對其進行寫入,而不是以root 身份進行所有維護- 請注意權限更改可能會破壞某些程式或可能會在系統更新時恢復,儘管Python 可能沒問題。或將網站包的符號連結新增至使用者可寫入空間中的其他位置,以便將更新與系統支援的檔案明確分開。
您可以使用「sudo bash」以 root 身分啟動 shell 會話。這是一件非常非常危險的事情,因為root 幾乎可以做任何事情,甚至可能不需要在刪除整個系統之前進行健全性檢查,例如“rm -rf . /*”(每個舊的UNIX 管理員都會犯一個拼字錯誤)至少做過一次)。