centos賬戶的uid和gid

來源:互聯網
上載者:User

標籤:

修改/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。下面給出的樣本顯示的是目前系統啟動並執行進程,第一列是運行該進程的使用者。

 
  1. [[email protected] ~]# ps aux 
  2. USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
  3. root         1  0.0  0.0   2072   632 ?        Ss   Oct18   0:00 init [3] 
  4. ......(略去內容)...... 
  5. 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。

 
  1. [[email protected] ~]# ls -l anaconda-ks.cfg 
  2. -rw------- 1 root root 954 Oct  7 21:02 anaconda-ks.cfg 
  3. [[email protected] ~]# ls -ln anaconda-ks.cfg 
  4. -rw------- 1 0 0 954 Oct  7 21:02 anaconda-ks.cfg

那麼,UID和GID又有什麼聯絡呢?事實上,在Linux下每個使用者都至少屬於一個組。舉個例子:每個學生在學校使用學號來作為標識,而每個學生又都屬於某一個班級,這裡的學號就相當於UID,而班級就相當於GID。當然了,每個學生可能還會同時參加一些興趣班,而每個興趣班也是不同的組。也就是說,每個學生至少屬於一個組,也可以同時屬於多個組。在Linux下也是一樣的道理。既然是這樣,如何查看自己的UID和GID呢?

要確認自己的UID,可以使用以下id命令來獲得:

 
  1. [[email protected] ~]# id 
  2. uid=0(root)gid=0(root)groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

要確認自己所屬的使用者組,可以使用以下groups命令來獲得:

 
  1. [[email protected] ~]# groups 
  2. root bin daemon sys adm disk wheel

如果要查詢當前線上使用者,可在使用者登入以後,使用命令who看到目前登入在系統中的所有使用者。下面的例子說明當前有3個登入,其中使用者root分別從tty1、pts/0登入到系統,而使用者john從pts/1登入。

  1. [[email protected] ~]# who  
  2. root     tty1         2012-10-22 00:13  
  3. root     pts/0        2012-10-22 21:20 (192.168.179.1)  
  4. john     pts/1        2012-10-22 22:35 (192.168.179.1)
轉:http://book.51cto.com/art/201401/427710.htm

centos賬戶的uid和gid

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.