在Linux操作系統中,root的權限是最高的,也被稱為超級權限的擁有者。普通用戶無法執行的操作,root用戶都能完成,所以也被稱之為超級管理用戶。
在系統中,每個文件、目錄和進程,都歸屬於某一個用戶,沒有用戶許可其它普通用戶是無法操作的,但對root除外。root用戶的特權性還表現在root可以超越任何用戶和用戶組來對
文件或目錄進行讀取、修改或刪除(在系統正常的許可范圍內);對可執行程序的執行、終止;對硬件設備的添加、創建和移除等;也可以對文件和目錄進行屬主和權限進行修改,以適合系統管理的需要(因為root是系統中權限最高的特權用戶);
一、對超級用戶和普通用戶的理解
1、什麼是超級用戶;
在所有Linux系統中,系統都是通過UID來區分用戶權限級別的,而UID為0的用戶被系統約定為是具有超級權限。超級用戶具有在系統約定的最高權限滿園內操作,所以說超級用戶可以完成系統管理的所有工具;我們可以通過/etc/passwd 來查得UID為0的用戶是root,而且只有root對應的UID為0,從這一點來看,root用戶在系統中是無可替代的至高地位和無限制權限。root用戶在系統中就是超級用戶;
2、理解 UID 和用戶的對應關系
當系統默認安裝時,系統用戶和UID 是一對一的對關系,也就是說一個UID 對應一個用戶。我們知道用戶身份是通過UID 來確認的,我們在 《用戶(user)和用戶組(group)配置文件詳解》中的UID 的解說中有談到“UID 是確認用戶權限的標識,用戶登錄系統所處的角色是通過UID 來實現的,而非用戶名;把幾個用戶共用一個UID 是危險的,比如我們把普通用戶的UID 改為0,和root共用一個UID ,這事實上就造成了系統管理權限的混亂。如果我們想用root權限,可以通過su或sudo來實現;切不可隨意讓一個用戶和root分享同一個UID ;”
在系統中,能不能讓UID 和用戶是一對多的關系?是可以的,比如我們可以把一個UID為0這個值分配給幾個用戶共同使用,這就是UID 和用戶的一對多的關系。但這樣做的確有點危險;相同UID的用戶具有相同的身份和權限。比如我們在系統中把beinan這個普通用戶的UID改為0後,事實上這個普通用戶就具有了超級權限,他的能力和權限和root用戶一樣;用戶beinan所有的操作都將被標識為root的操作,因為beinan的UID為0,而UID為0的用戶是root ,是不是有點擾口?也可以理解為UID為0的用戶就是root ,root用戶的UID就是0;
UID和用戶的一對一的對應關系 ,只是要求管理員進行系統管理時,所要堅守的准則,因為系統安全還是第一位的。所以我們還是把超級權限保留給root這唯一的用戶是最好的選擇;
如果我們不把UID的0值的分享給其它用戶使用,只有root用戶是唯一擁有UID=0的話,root用戶就是唯一的超級權限用戶;
3、普通用戶和偽裝用戶
與超級用戶相對的就是普通用戶和虛擬(也被稱為偽裝用戶),普通和偽裝用戶都是受限用戶;但為了完成特定的任務,普通用戶和偽裝用戶也是必須的;Linux是一個多用戶、多任務的操作系統,多用戶主要體現在用戶的角色的多樣性,不同的用戶所分配的權限也不同;這也是Linux系統比Windows系統更為安全的本質所在,即使是現在最新版本的Windows 2003 ,也無法抹去其單用戶系統的烙印;
二. 超級用戶(權限)在系統管理中的作用
超級權限用戶(UID為0的用戶)到底在系統管理中起什麼作用呢?主要表現在以下兩點;
1、對任何文件、目錄或進程進行操作;
但值得注意的是這種操作是在系統最高許可范圍內的操作;有些操作就是具有超級權限的root也無法完成;
比如/proc 目錄,/proc 是用來反應系統運行的實時狀態信息的,因此即便是root也無能為力;它的權限如下
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /
[root@localhost /]# ls -ld /proc/
dr-xr-xr-x 134 root root 0 2005-10-27 /proc/