ref:linux用戶和組管理,/etc/passwd,/etc/shadow和/etc/group 文件內容解釋

ref:https://www.cnblogs.com/xuha0/p/5519232.htmlhtml

與用戶相關的系統配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用戶資訊的加密文件,好比用戶的密碼口令的加密保存等;/etc/passwd 和/etc/shadow 文件是互補的;linux

/etc/passwd 是系統識別用戶的一個文件,系統全部的用戶都在這裏有登陸記載;當咱們以beinan 這個帳號登陸時,系統首先會查閱 /etc/passwd
文件,看是否有beinan 這個帳號,而後肯定beinan的UID,經過UID 來確認用戶和身份,若是存在則讀取/etc/shadow影子文件中所對應的beinan的密碼;若是密碼覈實無誤則登陸系統,讀取用戶的配置文件;shell

1)/etc/passwd 的內容理解:
  在/etc/passwd 中,每一行都表示的是一個用戶的信息;一行有7個段位;每一個段位用:號分割,例如:安全

   beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
   linuxsir:x:501:502::/home/linuxsir:/bin/bashbash

  第一字段:用戶名(也被稱爲登陸名);在上面的例子中,咱們看到這兩個用戶的用戶名分別是 beinan 和linuxsir;
  第二字段:口令;在例子中咱們看到的是一個x,其實密碼已被映射到/etc/shadow 文件中
  第三字段:UID ;請參看本文的UID的解說;
  第四字段:GID;請參看本文的GID的解說;
  第五字段:用戶名全稱,這是可選的,能夠不設置,在beinan這個用戶中,用戶的全稱是beinan sun ;而linuxsir 這個用戶是沒有設置全稱;
  第六字段:用戶的家目錄所在位置;beinan 這個用戶是/home/beinan ,而linuxsir 這個用戶是/home/linuxsir ;
  第七字段:用戶所用SHELL 的類型,beinan和linuxsir 都用的是 bash ;因此設置爲/bin/bash ;(用戶使用的shell,若是換成/sbin/nologin/就是默認沒有登陸環境的。)服務器

2)關於UID 的理解:
  UID 是用戶的ID 值,在系統中每一個用戶的UID的值是惟一的,更確切的說每一個用戶都要對應一個惟一的UID,系統管理員應該確保這一規則。系統用戶的UID的值從0開始,是一個正整數,至於最大值能夠在/etc/login.defsm能夠查到,通常Linux發行版約定爲60000;
  UID 是確認用戶權限的標識,用戶登陸系統所處的角色是經過UID 來實現的,而非用戶名,切記; 在Linux 中,root的UID是0,擁有系統最高權限;好比我在/etc/passwd 中把beinan的UID改成0後,你設想會發生什麼呢?beinan這個用戶會被確認爲root用戶。beinan這個賬號能夠進行全部root的操做;
  通常狀況下,每一個Linux的發行版都會預留必定的UID和GID給系統虛擬用戶佔用,虛擬用戶通常是系統安裝時就有的,是爲了完成系統任務所必須的用戶,但虛擬用戶是不能登陸系統的,好比ftp、nobody、adm、rpm、bin、shutdown等;預留數量以各個系統中/etc/login.defs中的 UID_MIN 的最小值爲準;好比Fedora 系統 login.defs的UID_MIN是500,而UID_MAX值爲60000,也就是說咱們經過adduser默認添加的用戶的UID的值是500到60000之間;less

二、關於/etc/shadow ;
  1)/etc/shadow 概說;
  /etc/shadow文件是/etc/passwd 的影子文件,這個文件並不禁/etc/passwd而產生的,這兩個文件是應該是對應互補的;shadow內容包括用戶及被加密的密碼以及其它/etc/passwd不能包括的信息,好比用戶的有效期限等;這個文件只有root權限能夠讀取和操做,權限以下:-r——– 1 root root 1.5K 10月 16 09:49 /etc/shadow工具

  2)/etc/shadow 的內容分析;
  /etc/shadow 文件的內容包括9個段位,每一個段位之間用:號分割;咱們以以下的例子說明;ui

  beinan:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:13072:0:99999:7:::
  linuxsir:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:13072:0:99999:7::13108:加密

  第一字段:用戶名(也被稱爲登陸名),在/etc/shadow中,用戶名和/etc/passwd 是相同的,這樣就把passwd 和shadow中用的用戶記錄聯繫在一塊兒;這個字段是非空的;
  第二字段:密碼(已被加密),若是是有些用戶在這段是x,表示這個用戶不能登陸到系統;這個字段是非空的;
  第三字段:上次修改口令的時間;這個時間是從1970年01月01日算起到最近一次修改口令的時間間隔(天數),您能夠經過passwd 來修改用戶的密碼,而後查看/etc/shadow中此字段的變化;
  第四字段:兩次修改口令間隔最少的天數;若是設置爲0,則禁用此功能;也就是說用戶必須通過多少天才能修改其口令;此項功能用處不是太大;默認值是經過/etc/login.defs文件定義中獲取,PASS_MIN_DAYS 中有定義;
  第五字段:兩次修改口令間隔最多的天數;這個能加強管理員管理用戶口令的時效性,應該說在加強了系統的安全性;若是是系統默認值,是在添加用戶時由/etc/login.defs文件定義中獲取,在PASS_MAX_DAYS 中定義;
  第六字段:提早多少天警告用戶口令將過時;當用戶登陸系統後,系統登陸程序提醒用戶口令將要做廢;若是是系統默認值,是在添加用戶時由/etc/login.defs文件定義中獲取,在PASS_WARN_AGE 中定義;
  第七字段:在口令過時以後多少天禁用此用戶;此字段表示用戶口令做廢多少天后,系統會禁用此用戶,也就是說系統會不能再讓此用戶登陸,也不會提示用戶過時,是徹底禁用;
  第八字段:用戶過時日期;此字段指定了用戶做廢的天數(從1970年的1月1日開始的天數),若是這個字段的值爲空,賬號永久可用;
  第九字段:保留字段,目前爲空,以備未來Linux發展之用;
  若是更爲詳細的,請用 man shadow來查看幫助,您會獲得更爲詳盡的資料;

2、關於用戶組;
  具備某種共同特徵的用戶集合起來就是用戶組(Group)。用戶組(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件;
  一、/etc/group 解說;
       文件是用戶組的配置文件,內容包括用戶和用戶組,而且能顯示出用戶是歸屬哪一個用戶組或哪幾個用戶組,由於一個用戶能夠歸屬一個或多個不一樣的用戶組;同一用戶組的用戶之間具備類似的特徵。

二、/etc/group 內容具體分析
  /etc/group 的內容包括用戶組(Group)、用戶組口令、GID及該用戶組所包含的用戶(User),每一個用戶組一條記錄;格式以下:
  group_name:passwd:GID:user_list
  在/etc/group 中的每條記錄分四個字段:
  第一字段:用戶組名稱;
  第二字段:用戶組密碼;
  第三字段:GID
  第四字段:用戶列表,每一個用戶之間用,號分割;本字段能夠爲空;若是字段爲空表示用戶組爲GID的用戶名;
  咱們舉個例子:
  root:x:0:root,linuxsir 注:用戶組root,x是密碼段,表示沒有設置密碼,GID是0,root用戶組下包括root、linuxsir以及GID爲0的其它用戶(能夠經過/etc/passwd查看)

二、關於GID ;
  GID和UID相似,是一個正整數或0,GID從0開始,GID爲0的組讓系統付予給root用戶組;系統會預留一些較靠前的GID給系統虛擬
用戶(也被稱爲假裝用戶)之用;查看系統添加用戶組默認的GID範圍應該查看 /etc/login.defs 中的 GID_MIN 和GID_MAX 值;
  咱們能夠對照/etc/passwd和/etc/group 兩個文件;咱們會發現有默認用戶組之說;即當一個用屬於多個組時會有一個默認的組;在建立目錄和文件時,會使用默認的用戶組;

三、/etc/gshadow 解說;
  /etc/gshadow是/etc/group的加密資訊文件,好比用戶組(Group)管理密碼就是存放在這個文件。/etc
/gshadow和/etc/group是互補的兩個文件;對於大型服務器,針對不少用戶和組,定製一些關係結構比較複雜的權限模型,設置用戶組密碼是極
有必要的。好比咱們不想讓一些非用戶組成員永久擁有用戶組的權限和特性,這時咱們能夠經過密碼驗證的方式來讓某些用戶臨時擁有一些用戶組特性,這時就要用
到用戶組密碼;
  /etc/gshadow 格式以下,每一個用戶組獨佔一行;
  groupname:password:admin,admin,…:member,member,…
  第一字段:用戶組
  第二字段:用戶組密碼,這個段能夠是空的或!,若是是空的或有!,表示沒有密碼;
  第三字段:用戶組管理者,這個字段也可爲空,若是有多個用戶組管理者,用,號分割;
  第四字段:組成員,若是有多個成員,用,號分割;
  舉例:
  beinan:!::linuxsir
   linuxsir:oUS/q7NH75RhQ::linuxsir
  第一字段:這個例子中,有兩個用戶組beinan用linuxsir
  第二字段:用戶組的密碼,beinan用戶組無密碼;linuxsir用戶組有已經,已經加密;
  第三字段:用戶組管理者,二者都爲空;
  第四字段:beinan用戶組所擁有的成員是linuxsir ,而後還要對照一下/etc/group和/etc/passwd
查看是否還有其它用戶,通常默認添加的用戶,有時同時也會建立用戶組和用戶名同名稱; linuxsir 用戶組有成員linuxisir ;
  如何設置用戶組的密碼? 咱們能夠經過 gpasswd 來實現;不過通常的狀況下,沒有必要設置用戶組的密碼;不過本身實踐一下也有必要;下面是一個爲linuxsir用戶組設置密碼的例子;
  gpasswd 的用法: gpasswd 用戶組

3、經過用戶和用戶組配置文件來查詢或管理用戶;
  一、用戶和用戶組查詢的方法;
  1)經過查看用戶(User)和用戶組的配置文件的辦法來查看用戶信息
  咱們已經用戶(User)和用戶組(Group)的配置文件已經有個基本的瞭解,經過查看用戶(User)和用戶組的配置文件,咱們就能作到對系統用戶的瞭解,固然您也能夠經過id 或finger 等工具來進行用戶的查詢等任務。
  對於文件的查看,咱們能夠經過 more 或cat 來查看,好比 more /etc/passwd 或cat /etc/passwd ;其它工具也同樣,能對文本查看就行,好比less 也好
  好比咱們能夠經過more 、cat 、less命令對/etc/passwd 的查看,雖然命令不一樣,但達到的目的是同樣的, 都是獲得/etc/passwd 的內容;
  [root@localhost ~]# more /etc/passwd
   [root@localhost ~]# cat /etc/passwd
   [root@localhost ~]# less /etc/passwd
  2)經過id和finger 工具來獲取用戶信息;
  除了直接查看用戶(User)和用戶組(Group)配置文件的辦法除外,咱們還有id和finger工具可用,咱們同樣經過命令行的操做,來
完成對用戶的查詢;id和finger,是兩個各有測重的工具,id工具更測重用戶、用戶所歸屬的用戶組、UID 和GID 的查看;而finger
測重用戶資訊的查詢,好比用戶名(登陸名)、電話、家目錄、登陸SHELL類型、真實姓名、空閒時間等等;
  id 命令用法;
  id 選項 用戶名
  好比:我想查詢beinan和linuxsir 用戶的UID、GID 以及歸屬用戶組的狀況:
  [root@localhost ~]# id beinan
   uid=500(beinan) gid=500(beinan) groups=500(beinan)  注:beinan的UID 是 500,默認用戶組是beinan,默認用戶組的GID 是500,歸屬於beinan用戶組;  [root@localhost ~]# id linuxsir   uid=505(linuxsir) gid=502(linuxsir) groups=502(linuxsir),0(root),500(beinan)  注:linuxsir的UID 是505,默認用戶組是linuxsir ,默認用戶組的GID 是502,歸屬於linuxsir(GID爲502)、root(GID爲0),beinan(GID爲500);  關於id的詳細用法,我會在專門用戶查詢的文章來介紹;您能夠經過man id 來查看用法,用起來仍是比較簡單的;    若是finger 不加任何參數和用戶,會顯示出當前在線用戶,和w命令相似;對比一下;不過各有測重;  [root@localhost ~]# w   14:02:42 up 1:03, 3 users, load average: 0.04, 0.15, 0.18   USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT   linuxsir tty1 - 13:39 22:51 0.01s 0.01s -bash   beinan tty2 - 13:53 8:48 11.62s 0.00s /bin/sh /usr/X1

相關文章
相關標籤/搜索