歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> 詳解Linux系統中的root權限控制

詳解Linux系統中的root權限控制

日期:2017/3/2 16:31:03   编辑:Linux服務器

  在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/

  就是這個目錄,只能是讀和執行權限,但絕對沒有寫權限的;就是我們把/proc 目錄的寫權限打開給root,root用戶也是不能進行寫操作;

  代碼如下:

  [root@localhost ~]# chmod 755 /proc

  [root@localhost /]# ls -ld /proc/

  drwxr-xr-x 134 root root 0 2005-10-27 /proc/

  [root@localhost /]# cd /proc/

  [root@localhost proc]# mkdir testdir

  mkdir: 無法創建目錄'testdir': 沒有那個文件或目錄

  2、對於涉及系統全局的系統管理;

  硬件管理、文件系統理解、用戶管理以及涉及到的系統全局配置等等……如果您執行某個命令或工具時,提示您無權限,大多是需要超級權限來完成;

  比如用adduser來添加用戶,這個只能用通過超級權限的用戶來完成;

  3、超級權限的不可替代性;

  由於超級權限在系統管理中的不可缺少的重要作用,為了完成系統管理任務,我們必須用到超級權限;在一般情況下,為了系統安全,對於一般常規級別的應用,不 需要root用戶來操作完成,root用戶只是被用來管理和維護系統之用;比如系統日志的查看、清理,用戶的添加和刪除……

  在不涉及系統管理的工作的環境下,普通用戶足可以完成,比如編寫一個文件,聽聽音樂;用gimp 處理一個圖片等…… 基於普通應用程序的調用,大多普通用戶就可以完成;

Copyright © Linux教程網 All Rights Reserved