Permissions
擁有或限製文件所有者權限的原因是什麼?
如了解 UNIX 權限和文件類型中所述,每個文件都有以下權限設置(“文件模式”):
- 所有者/使用者(“
u
”),- 所有者的組 ("
g
"),以及- 其他所有人(“
o
”)。據我了解,文件的所有者始終可以使用
chmod
. 任何在所有者下執行的應用程序也是如此。如果所有者可以隨時更改權限,那麼限制所有者自己的權限的原因是什麼?
我能看到的唯一用途是防止意外刪除或執行,如果有意的話,很容易克服。
此處提出了一個相關問題:存在“所有者”權限是否有原因?組權限還不夠嗎?它討論了為什麼所有者的權限不能被由單個使用者(所有者)組成的虛擬組替換。相比之下,這裡我問的是原則上對所有者擁有權限的目的,無論它們是通過單獨的“
u
”八進制還是單獨的組+ ACL實現的。
減少所有者的權限有多種原因(儘管很少低於組的權限)。
- 最常見的是對不打算執行的文件沒有執行權限。很多時候,shell 腳本是旨在從其他腳本(例如 your
.profile
)獲取的片段,作為頂級程序沒有意義。命令完成只會提供執行檔,因此正確的權限有助於互動式 shell。- 意外覆蓋文件是一個很大的風險 - 它可能通過錯誤輸入命令發生,或者在 GUI 程序中更容易發生。從我的相機複製文件時,我做的第一件事就是使它們(及其包含的目錄)不可寫,這樣我所做的任何編輯都必須是副本,而不是覆蓋原始文件。
- 有時文件甚至不可讀是很重要的。如果我升級我的 Emacs 並且我的目錄中的本地包有問題
~/lisp
,我會選擇性地禁用它們(使用chmod -r
)直到它可以成功啟動;然後我可以在修復兼容性問題時一次使它們可讀。一組正確的使用者權限表示有意。儘管使用者可以更改權限,但表現良好的程序不會這樣做(至少,不是不先詢問)。與其將權限視為限制使用者,不如將其視為限制使用者程序在給定時間點可以執行的操作。