標籤:
修改/etc/passwd和/etc/group檔案的UID和GID為0,可以獲得root許可權,不過不推薦~
UID和GID
Linux系統如何區別不同的使用者呢?可以很自然地想到,使用不同的使用者名稱應該是一個好主意,就像真實世界中每個人都有名字一樣。但“使用者名稱”只是一種方便讓人讀的字串,對機器來說是沒有意義的。事實上,Linux系統採用一個32位的整數記錄和區分不同的使用者,這意味著系統可以記錄多達40億個不同的使用者。這個用來區分不同使用者的數字被稱為User ID,簡稱UID。系統會自動記錄“使用者名稱”和UID的對應關係。Linux系統中的使用者分為3類,即普通使用者、根使用者、系統使用者。
普通使用者是指所有使用Linux系統的真實使用者,這類使用者可以使用使用者名稱及密碼登入系統。Linux有著極為詳細的使用權限設定,所以一般來說普通使用者只能在其家目錄、系統臨時目錄或其他經過授權的目錄中操作,以及操作屬於該使用者的檔案。通常普通使用者的UID大於500,因為在添加普通使用者時,系統預設使用者ID從500開始編號。
根使用者也就是root使用者,它的ID是0,也被稱為超級使用者,root賬戶擁有對系統的完全控制權:可以修改、刪除任何檔案,運行任何命令。所以root使用者也是系統裡面最具危險性的使用者,root使用者甚至可以在系統正常運行時刪除所有檔案系統,造成無法挽回的災難。所以一般情況下,使用root使用者登入系統時需要十分小心。
系統使用者是指系統運行時必須有的使用者,但並不是指真實的使用者。比如在RedHat或CentOS下運行網站服務時,需要使用系統使用者apache來運行httpd進程,而運行MySQL資料庫服務時,需要使用系統使用者mysql來運行mysqld進程。在RedHat或CentOS下,系統使用者的ID範圍是1~499。下面給出的樣本顯示的是目前系統啟動並執行進程,第一列是運行該進程的使用者。
- [[email protected] ~]# ps aux
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- root 1 0.0 0.0 2072 632 ? Ss Oct18 0:00 init [3]
- ......(略去內容)......
- apache 7930 0.0 0.1 9944 2064 ? S 21:23 0:00 /usr/sbin/httpd
在Linux系統中除了有使用者之外,還有“使用者組”的概念,不同的使用者組同樣也是用數字來區分的,這種用於區分不同使用者組的ID被稱為Group ID,也就是GID。
在下面的例子中,使用ls -l查看檔案時,第三列和第四列顯示的是這個檔案的所有者是使用者root,所有組是root組,如果加上了-n參數,第三列和第四列則是用UID和GID來顯示的,這裡分別是0和0。
- [[email protected] ~]# ls -l anaconda-ks.cfg
- -rw------- 1 root root 954 Oct 7 21:02 anaconda-ks.cfg
- [[email protected] ~]# ls -ln anaconda-ks.cfg
- -rw------- 1 0 0 954 Oct 7 21:02 anaconda-ks.cfg
那麼,UID和GID又有什麼聯絡呢?事實上,在Linux下每個使用者都至少屬於一個組。舉個例子:每個學生在學校使用學號來作為標識,而每個學生又都屬於某一個班級,這裡的學號就相當於UID,而班級就相當於GID。當然了,每個學生可能還會同時參加一些興趣班,而每個興趣班也是不同的組。也就是說,每個學生至少屬於一個組,也可以同時屬於多個組。在Linux下也是一樣的道理。既然是這樣,如何查看自己的UID和GID呢?
要確認自己的UID,可以使用以下id命令來獲得:
- [[email protected] ~]# id
- uid=0(root)gid=0(root)groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
要確認自己所屬的使用者組,可以使用以下groups命令來獲得:
- [[email protected] ~]# groups
- root bin daemon sys adm disk wheel
如果要查詢當前線上使用者,可在使用者登入以後,使用命令who看到目前登入在系統中的所有使用者。下面的例子說明當前有3個登入,其中使用者root分別從tty1、pts/0登入到系統,而使用者john從pts/1登入。
- [[email protected] ~]# who
- root tty1 2012-10-22 00:13
- root pts/0 2012-10-22 21:20 (192.168.179.1)
- john pts/1 2012-10-22 22:35 (192.168.179.1)
轉:http://book.51cto.com/art/201401/427710.htm
centos賬戶的uid和gid