為什麼 var 目錄不是使用者特定的?
我是 UNIX 世界的新手,所以如果我的問題很愚蠢,請隨時告訴我。
所謂的文件系統層次標準規定,該
/var
目錄應該保存日誌和記憶體等數據,包括但不限於本地包:/var包含可變數據文件。這包括假離線目錄和文件、管理和日誌數據以及臨時和臨時文件。
…
此處指定/var是為了能夠以 只讀方式掛載**/usr 。曾經進入/usr並在系統執行期間寫入的所有內容(相對於安裝和軟體維護)都必須在/var中**
我主要想知道它應該如何在本地多使用者系統中工作。
/var
是一種系統的全域目錄,所有使用者的所有記憶體數據和日誌似乎都在它們之間共享。以任何方式都不會被認為是錯誤的嗎?我的意思是代表不同使用者啟動的程序(包)將使用相同的記憶體,更不用說所有本地使用者都可以讀取日誌並查看彼此的記憶體數據這一事實。請幫助我理解這個概念。謝謝。
該
/var
目錄用於系統日誌和記憶體。個人使用者日誌(罕見)和記憶體(頻繁)保存在使用者的主目錄中。
可以通過一個範例(例如列印機)來有效地探索大多數潛在問題。在 Joe 完成論文列印之前,Alice 並不真正希望 lpr(1) 阻塞。系統不希望 Alice 在列印之前刪除她的文件。顯而易見的解決方案是將文件的副本放在假離線目錄中,直到它安全地放在紙上。
傳統上,列印作業在 /usr/spool/lp 中排隊。如前所述,問題在於這有效地禁止以只讀方式掛載 /usr。請記住,該問題延伸到每個隊列(郵件、uucp 等)和所有系統日誌。這會導致第二個問題,即 /usr 的大小完全獨立於作業系統安裝的大小。想像一下,您正在配置一個具有 35MB 二進製文件的新系統。你需要多大的 /usr 分區?詭計問題!35MB 加上保留日誌所需的時間乘以電子郵件、列印機、新聞閱讀器的平均使用量。
將所有內容移動到 /var 巧妙地解決了只讀問題,並在管理噩夢方面取得了重大進展。一方面,它可以輕鬆測量數據使用了多少空間。擴展或替換單個分區也比擔心 /usr/spool、/usr/log 等要少得多。
在主目錄之間儲存系統狀態只會增加複雜性。可能有數百個單獨的目錄來管理您的權限,而不是一個單一的全域目錄。最重要的是,您可以增加連續掃描所有這些目錄的成本。
不太明顯的是主目錄不是系統特定的事實。網路安裝的相當普遍。列印文件時,您可能只希望它在您登錄的位置列印,而不是安裝您的主目錄的每台機器。可用性在這裡也是一個問題,因為如果文件伺服器崩潰,主目錄可能會消失。或者添加一個更現代的轉折,如果主目錄被加密並且系統無法讀取它。
從歷史上看,全球儲存一直是公共資訊的記憶體。在沒有新聞伺服器的情況下,usenet 文章被批量下載並儲存在中央位置。畢竟,沒有理由在多個使用者之間複製大型新聞提要。集中隊列還可以作為傳入資訊的緩衝區。考慮郵件隊列,它可能無法將郵件存入您的加密主目錄。(再次可用)或者您在度假時收到大量垃圾郵件的情況。超過磁碟配額後系統應該丟棄所有消息,還是將它們保存並讓您稍後整理?