Linux常用指令(五)賬号群組管理
一、管理使用者賬号
1、使用者賬号的分類
■超級使用者:root使用者是Linux系統中預設的超級使用者賬号,對本主機擁有最大的權限,類似于Windows 系統中的Administrator使用者。
■普通使用者:普通使用者賬号需要由root使用者或其他管理者使用者建立;擁有的權限收到一定限制,一般隻 在使用者自己的宿主目錄中擁有完整權限。
■程式使用者:在安裝linux系統及部分應用程式時,會添加一些特定的低權限使用者賬号,這些使用者一般 不允許登入到系統,而僅用于維持系統或某個程式的正常運作。
2、組賬号
基礎某種特定聯系将多個使用者集合在一起,即構成一個使用者組,用于表示該組内所有使用者的賬号稱為組賬号。每一個使用者賬号至少屬于一個組,這個組稱為該使用者的基本組(或私有組);若該使用者同時還包括在其他的組中,則這些組稱為該使用者的附加組(或公共組)。
3、UID和GID号
Linux系統中的每一個使用者賬号都有一個數字形式的身份标記,稱為UID,對于系統核心來說,UID作為區分使用者的基本依據,每個使用者的UID号應該是唯一的。root使用者賬号的UID号為固定值0,而程式使用者賬号的UID号預設為1~499,普通使用者使用的UID号預設為500~60000。
二、使用者賬号管理
1、使用者賬号檔案
與使用者賬号相關的配置檔案主要有兩個,分别是/etc/passwd、/etc/shadow。
1.1)、passwd檔案
passwd檔案主要儲存使用者名稱、宿主目錄、登入Shell等基本資訊。在配置檔案中,每一行對應一個使用者賬号,不用的配置項之間使用冒号“:”進行分隔。

passwd檔案的每一行内容中,包含了七個用冒号“:”分隔的配置字段,從左到右各個配置字段的含義分别如下所述。
■第1字段:使用者賬号的名稱,也是登入系統時使用的識别名稱。
■第2字段:經過加密的使用者密碼字串,或者密碼占位符“x”。
■第3字段:使用者賬号的UID号。
■第4字段:所屬基本組賬号的GID号。
■第5字段:使用者全名,可填寫與使用者相關的說明資訊。
■第6字段:宿主目錄,即該使用者登入後所在的預設工作目錄。
■第7字段:登入Shell等資訊,使用者完成登入後使用的Shell。
所有使用者都可以通路passwd檔案中的内容,但是隻有root使用者才能進行更改。
1.2)、shadow檔案中的配置行格式
shadow檔案又被稱為“影子檔案”,其中儲存有各使用者賬号的密碼資訊,是以對shadow檔案的通路應該進行嚴格限制。預設隻有root使用者能夠讀取檔案中的内容,而不允許直接編輯該檔案中的内容。
■第1字段:使用者賬号名稱
■第2字段:使用MD5加密的密碼字元串資訊,當為“*”或“!!”時表示此使用者不能登入到系統。若 該字段内容為空,則該使用者無需密碼即可登入系統。
■第3字段:上次修改密碼的時間,表示從1970年01月01日算起到最近一次修改密碼時,間隔的天數。
■第4字段:密碼的最短有效天數,自本次修改密碼後,必須至少經過該天數才能再次修改密碼。預設 值為0,表示不進行限制。
■第5字段:密碼的最長有效天數,自本次修改密碼後,經過該天數以後必須再次修改密碼。預設值 為99999,表示不進行限制。
■第6字段:提前多少天警告使用者密碼将過期,預設值為7。
■第7字段:密碼過期之後多少天内禁用此使用者。
■第8字段:賬号失效時間,此字段指定了使用者廢棄的天數(從1970年01月01日起計算),預設值為 空,表示賬号永久可用。
■第9字段:保留字段,目前沒有特定的用途。
2、添加、修改、删除使用者賬号
2.1)、useradd指令——添加使用者賬号
使用useradd指令添加使用者賬号時主要完成以下幾項任務。
■ 在/etc/passwd檔案和/etc/shadow檔案的末尾增加該使用者賬号的記錄。
■ 若未明确指定使用者的宿主目錄,則在/home目錄下自動建立與該使用者賬号同名的宿主目錄,并在該 目錄中建立使用者的各種初始配置檔案。
■ 若沒有明确指定使用者所屬的組,則自動建立與該使用者賬号同名的基本組賬号,組賬号的記錄資訊将 儲存到/etc/group、/etc/gshadow檔案中。
useradd指令中幾個常見選項。
■ –u:指定使用者的UID号,要求該UID号碼未被其他使用者使用。
■ –d:指定使用者的宿主目錄位置(當與-M一起使用時,不生效)。
■ –e:指定使用者的賬戶失效時間,可使用“年-月-日”的日期格式。
■ –g:指定使用者的基本組名(或使用GID号)
■ –G:指定使用者的附加組名(或使用GID号)
■ –M:不建立宿主目錄,即使/etc/login.defs系統配置中已設定要建立宿主目錄。
■ –s:指定使用者的登入Shell
2.2)、passwd指令——為使用者賬号設定密碼
通過useradd指令新增使用者賬号以後,還需要為其設定一個密碼才能夠正常使用。使用passwd指令可以設定或修改密碼,root使用者有權管理其他賬号的密碼。例如為zhangsan設定密碼,密碼要輸兩遍,第二遍是确認,要和第一遍一樣。
這裡由于設定的密碼為123,是以提示“無效的密碼:過短,過于簡單”但是沒關系,密碼已經設定成功了。正常情況密碼還是應該設定的複雜一點。
使用passwd指令除了可以修改賬号的密碼之外,還能夠對使用者賬号進行鎖定、解鎖,或者也可以将使用者的密碼設定為空(無需密碼即可登入)。常用選項如下:
■ –d:清空指定使用者的密碼,僅使用使用者名即可登入系統。
■ –l:鎖定使用者賬戶。
■ –S:檢視使用者賬号的狀态(是否被鎖定)
■ –u:解鎖使用者賬戶。
2.3)、usermod指令——修改使用者賬号屬性
對于系統中已經存在的使用者賬号,可以使用usermod指令重新設定各種屬性。常用參數如下:
■ –u:修改使用者的UID号。
■ –d:修改使用者的宿主目錄位置。
■ –e:修改使用者的賬戶失效時間,格式“年—月—日”
■ –g:修改使用者的基本組名(或使用GID号)
■ –G:修改使用者的附加組名(或是用GID号)
■ –s:指定使用者的登入Shell。
■ –l:更改使用者賬号的登入名稱
■ –L:鎖定使用者賬戶。
■ –U:解鎖使用者賬戶。
若要修改已有賬号的宿主目錄,需要先将該賬号原有的宿主目錄轉移到新的位置,然後再通過usermod指令設定新的宿主目錄位置。例如,執行以下操作可以将zhangsan使用者的宿主目錄由/home/zhangsan轉移至/zhangsan。
注意:zhangsan賬号不能處于登入狀态。
2.4)、userdel指令——删除使用者賬号
格式為
結合“-r”選項可同時删除宿主目錄。
3.使用者賬号的初始配置檔案
添加一個新的使用者賬号後,useradd指令會在該使用者的宿主目錄中建立一些初始配置檔案。這些檔案來自于賬号模闆目錄“/etc/skel”,基本上都是影藏檔案,較常用的初始配置檔案有:
■ .bashrc_profile:檔案中的指令将在該使用者每次登入時被執行。
■ .bash_logout:檔案中的指令将在使用者每次退出登陸時執行。
■ .bashrc:檔案中的指令會在每次加載“/bin/Bash”程式時(當然也包括登陸系統)執行。
三、組賬号管理
1、組賬号檔案
與組賬号相關的配置檔案也有兩個,分别是“/etc/group”、“/etc/gpasswd”。前者用于儲存組賬号的名稱、GID号、組成員等基本資訊,後者用于儲存組賬号的加密密碼字串等資訊(很少用)
2、添加、删除、修改組賬号
2.1)、groupadd指令——添加組賬号
需要指定GID号時,可以使用“-g”選項
2.2)、grpasswd指令——添加、設定、删除組成員
■ –a:添加一個組成員(使用者寫前邊,組寫後邊)
■ –d:删除組中的某一個成員
■ –M:一次性添加多個使用者到一個組裡邊。
2.3)、groupdel指令——删除組賬号
當系統中的某個組賬号已經不再使用時,可以使用groupdel指令将該組賬号删除。
四、查詢賬号資訊
1、groups指令——查詢使用者賬号所屬的組
使用groups指令可以檢視指定的使用者賬号屬于那些組。
2、id——查詢使用者賬号的身份辨別
使用id指令可以快速檢視指定使用者賬号的UID、GID等辨別資訊。
3、w指令——查詢目前主機的使用者登入情況
使用w指令可以查詢目前主機中的使用者登入情況,列出登入賬号名稱、所在終端、登入時間、來源地點等資訊。