Linux 使用者管理工具介紹
本文主要介紹Linux系統的使用者和使用者組的查詢、新增、修改及刪除等管理工具;
Linux是一個多使用者的作業系統,她有完美的使用者管理工具,這些工具包括使用者的查詢、新增、修改,以及使用者之間相互切換的工具等;通過這些工具,我們能安全、輕鬆的完成使用者管理;
一、與使用者管理相關的配置檔案
1、/etc/passwd 和/etc/groups
1、/etc/passwd 和/etc/groups
在linux系統下,對使用者和使用者組進行新增、修改、刪除等操作的最終目的都是通過修改使用者和組的配置檔案來實現的,這些主要配置檔案主要有:/etc/passwd、/etc/shadows、/etc/groups、/etc/gshadow、/etc/skel 目錄等;
使用者和使用者組的配置檔案,是系統管理員最應該瞭解和掌握的系統基礎之一,從另一方面來說,瞭解這些檔案也是系統安全管理的重要組成部分;
1、/etc/passwd 使用者帳號密碼檔案
[root@jekay /]# cat /etc/passwd
登陸名 口令 UID GID 使用者全稱和描述 使用者主目錄 使用者登陸的shell環境
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
……
在/etc/passwd 中,每一行都表示的是一個使用者的資訊;一行有7個段位;每個段位用:號分割,如上:
說明:
UID是使用者的ID值,是確認使用者許可權的標識,在系統中每個使用者的UID的值是唯一的,更確切的說每個使用者都要對應一個唯一的UID ,系統管理員應該確保這一規則。系統使用者的UID的值從0開始,是一個正整數,至於最大值可以在/etc/login.defs 可以查到,一般Linux發行版約定為60000; 在Linux 中,root的UID是0,擁有系統最高許可權;把幾個使用者設定為同樣的UID會造成系統安全的隱患,尤其是設定成root的 UID號0;
Linux系統中的使用者角色:
使用者在系統中是分角色的,在Linux 系統中,由於角色不同,許可權和所完成的任務也不同;值得注意的是使用者的角色是通過UID和識別的,特別是UID;在系統管理中,系統管理員一定要堅守UID 唯一的特性;
root
使用者
:系統唯一,是真實的,可以登入系統,可以作業系統任何檔案和命令,擁有最高許可權;
虛擬使用者
:這類使用者也被稱之為偽使用者或假使用者,與真實使用者區分開來,這類使用者不具有登入系統的能力,但卻是系統執行不可缺少的使用者,比如bin、daemon、adm、ftp、mail等;這類使用者都系統自身擁有的,而非後來新增的,當然我們也可以新增虛擬使用者;
普通使用者
:這類使用者能登入系統,但只能操作自己家目錄的內容;許可權有限;這類使用者都是系統管理員自行新增的;
/etc/login.defs是設定使用者帳號限制的檔案,在這裡我們可配置密碼的最大過期天數,密碼的最大長度約束等內容;
多數發行版本,新增新使用者時的UID從500開始的,GID也是從500開始;500內的為系統預留;
2、/etc/shadows 使用者帳號的加密檔案
[root@jekay /]# cat /etc/shadow
root:$1$MebjzxXM$0hVmQ6MMDB5ZVVAGuUG7G 1:13599:0:99999:7:::
bin:*:13599:0:99999:7:::
daemon:*:13599:0:99999:7:::
adm:*:13599:0:99999:7:::
lp:*:13599:0:99999:7:::
sync:*:13599:0:99999:7:::
……
/etc/shadow 檔案的內容包括9個段位,每個段位之間用:號分割;
第一欄位: 使用者名稱(也被稱為登入名)
,在/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日 開始的天數),如果這個欄位的值為空,帳號永久可用;
第九欄位:保留欄位;
/etc/shadow檔案是/etc/passwd 的投影檔案,這個檔案並不由/etc/passwd 而產生的,這兩個檔案是應該是對應互補的;shadow內容包括使用者及被加密的密碼以及其它/etc/passwd 不能包括的資訊,比如使用者的有效期限等;這個檔案只有root許可權可以讀取和操作,許可權如下:
-r-------- 1 root root 740 Mar 27 17:03 /etc/shadow
3、/etc/groups 使用者組帳號檔案
具有某種共同特徵的使用者集合起來就是使用者組(Group)。使用者組(Group)配置檔案主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密資訊檔案;
/etc/group檔案相對來說比較簡單,通過這個配置檔案,我們可以清楚地看到系統中使用者組,以及使用者屬於哪個組,某個組中的使用者成員有誰等;
Linux系統下使用者組分為2種,使用者私有組和公有組;
私用組:只包含一個使用者,建立使用者時自動建立一個和使用者同名的組
公有組:可以包含多個使用者
當一個使用者屬於多個使用者組時,某個使用者的許可權只能是當前所屬組的許可權,而不能是多個組許可權的累加,這與windows是不一樣的;
不要隨便把普通使用者加入到root組;
[root@jekay /]# cat /etc/group
組名 群組密碼 GID 組中使用者列表
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
……
在/etc/group 中的每條記錄分四個欄位,中間使用:隔開
GID和UID類似,是一個正整數或0,是使用者組的ID值,GID從0開始, 0被系統賦予root使用者組;系統會預留一些較靠前的GID給系統虛擬使用者組之用;多數linux發行版本預留了500,也就是說新使用者組的GID從500開始;檢視 /etc/login.defs 中的 GID_MIN 和GID_MAX 值,可以知道GID的最大設定值;