Linux OS是基於Unix系統開發而來,我們知道計算機是昂貴與稀缺的資源,所以一台計算機就要滿足多個用戶同時使用,即多用戶的系統的思想。
實現方式:通過分時共享的策略。即讓多個用戶可以同時使用一台計算機。該分時共享策略,使得機器即使只有一個用戶,也可以同時運行多個任務,響應多個進程。
Linux多用戶系統實現的必備特性:
(1)認證機制:以驗證用戶ID。
(2)保護機制1:以對抗bug,不讓這些壞程序阻塞其他用戶程序。
(3)保護機制2:以對抗惡意程序,以防它去監聽其他用戶的活動。
(4)審計機制:以限制分派給每個用戶的資源。
為了確保計算機的安全,Linux內核要求使用由CPU硬件提供的特權模式;而用戶程序只能運行在非特權模式下。用戶程序如果想要使用底層的軟、硬件資源,必須向Linux內核發出請求(中斷或系統調用),在Linux內核許可后,並切入特權模式以執行。
如在ARM處理器中,CPSR(當前程序狀態寄存器)使用了5個位來識別處理器的7種模式,其中兩種模式就與Linux中的用戶模式和內核模式相對應,其他5種模式則用來標識不同的中斷或者是出錯的場景。
用戶和組:
Linux作為一個多用戶的操作系統,每個用戶在機器上都有一個私有空間,特別是它會擁有配額的磁盤空間,以存儲文件、接收私有的mail消息等。Linux必須保證這部分私有空間只對它的擁有者是可見的(類似於銀行賬戶,當然只能對於儲戶自己可見啦),而且應該確保沒有用戶可以使用系統應用程序來侵犯其他用戶的私有空間(當然也就是不能讓別人隨便來動我銀行賬戶的資金啦)。
在Linux操作系統中,所有的用戶都是通過唯一的用戶ID(UID->User ID)來識別的。但是如果選擇與其他用戶共享資料,共享的用戶就應該是一個或者多個組的成員,這個用組ID(GID->group ID)來識別(幾個人出錢成立了一個小公司,這個公司名就是GID,我們的錢就是共享的資源,大家都可以使用和可見)。每個文件都可與一個確切的組相關聯。如:作為文件擁有者的用戶對該文件的讀寫權限,而組中其他用戶則只擁有讀權限,系統內非組中的用戶則沒有任何權限(不可讀不可寫不可執行)。
超級用戶:在Linux系統中,有一個特殊的用戶->超級用戶(root),root用戶幾乎可以在Linux系統中做任何事情,因為OS沒有對它采取一般的防護機制,root用戶可以訪問系統上的每個文件,可以管理每一個正在運行的用戶程序。
普通用戶和超級用戶的切換:在Linux命令行輸入命令:su -,然后輸入root用戶的密碼即可切換至root用戶,但是建議一般情況下,不要隨意使用root用戶,因為root用戶操作失誤會導致系統文件丟失甚至系統崩潰。