在 os-x 10.8 上的 /Library 中建立目錄和文件

在 os-x 10.8 上的 /Library 中建立目錄和文件

我想將檔案安裝到 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 管理員都會犯一個拼字錯誤)至少做過一次)。

相關內容