//與用戶相關的配置文件:/etc/passwd: #用戶的配置文件, 保存用戶賬戶的基本信息
/etc/shadow #用戶影子口令文件
一、用戶帳號文件——passwd
1.“/etc/passwd”文件是UNIX安全的關鍵文件之一。該文件用於用戶登錄時效驗用戶的登錄名、加密的口令數據項、用戶ID(UID)、默認的用戶組ID(GID)、用戶信息、用戶主目錄及登錄后使用的shell。
2.“/etc/passwd”文件的每一行保存一個用戶的資料,而用戶數據按域以冒號“ :”分隔。格式如下
username:password:uid:gid:userinfo:home:shell
各個域的含義如下所示
“/etc/passwd”文件中域的含義
域 | 含義 |
username | 登錄名 |
password | 加密的用戶口令 |
uid | 用戶ID |
gid | 用戶組ID |
userinfo | 用戶信息 |
home | 分配給用戶的主目錄 |
shell | 用戶登錄后將執行的shell(若為空格則默認為“/bin/sh”) |
下面是一個實際用戶的例子。
user1:x:500:500: user1:/home/user1:/bin/bash
那么該用戶的基本信息如下所示。
1.登錄名:user1。
2.加密的口令表示:x。
3.UID:500。
4.GID:500。
5.用戶信息:user1.
6.用戶主目錄:“/home/user1”。
7.登錄后執行的shell:“/bin/bash”。
//任何擁有0值UID的用戶都具有root用戶訪問權限。
二、用戶影子文件——shadow
1.針對惡意用戶取得“/etc/passwd”文件,linux系統目前廣泛采用“shadow(影子)文件”機制,將加密的口令轉移到“/etc/shadow”文件里。“/etc/shadow文件”只為root超級用戶可讀,而相應的“/etc/passwd”
文件的密文域顯示為一個“x”,從而最大限度地減少了密文泄露的機會。
2.和“/etc/passwd”類似,“/etc/shadow”文件中每條記錄用冒號“:”分隔,形成9個域,格式如下:
username:password:lastchg:min:max:warn:inactive:expire:flag
各個域含義如下所示:
“/etc/shadow”文件中域的含義
域 | 含義 |
username | 用戶登陸名 |
password | 加密的用戶口令 |
lastchg | 表示從1970年1月1日期到上次修改口令所經過的天數 |
min | 表示倆次修改口令之間至少經過的天數 |
max | 表示口令還會有效的最大天數,如果是99999則表示永不過期 |
warn | 表示口令失效前多少天內系統向用戶發出警告 |
inactive | 表示禁止登錄前用戶名還有效的天數 |
expire | 表示用戶被禁止登錄的時間 |
flag | 保留域 |
//有域未被定義以:表示
三、用戶帳號文件——group和gshadow
1.“/etc/passwd”文件包含在每個用戶組ID(GID),在“/etc/passwd”文件中尋找同組用戶較費時。“/etc/grop”文件包含關於用戶組信息,“/etc/grop”提供了一個比較快捷的尋找途徑。
2.在“/etc/passwd”中每個GID在“/etc/grop”中都應該有相應的項列出用戶組和其他的用戶。
2.“/etc/group”文件記錄格式如下所示:
group_name:group_password:group_id:group_members
各個域的含義如下
“/etc/group”的域及其含義
域 | 含義 |
group_name | 用戶組名 |
group_password | 加密后的用戶組口令 |
group_id | 用戶組ID(GID) |
group_members | 以逗號分隔的成員用戶清單 |
和用戶帳號文件passwd一樣,為了應對黑客對其實行的暴力攻擊,用戶組文件也采用一種將組口令的其他信息相分離的安全機制——gshadow。
“/etc/gshadow”文件記錄格式如下:
group_name:group_password: group_members
其中各個域的含義如下
“/etc/gshadow”的域及其含義
域 | 含義 |
group_name | 用戶組名 |
group_password | 加密后的用戶組口令 |
group_members | 以逗號分隔的成員用戶清單 |
四、pwck和grpck命令
1.pwck命令:作用是檢驗“/etc/passwd”和“/etc/shadow”每個域的格式及數據的正確性,並對二者的一致性進行校驗。如果錯誤,系統將提示用戶對出現錯誤的數據項進行修改或刪除。
2.grpck命令:作用是檢驗“/etc/group”和“/etc/gshadow”數據項中每個域的格式及其數據的正確性,並對組帳號文件“/etc/group”及其影子文件“/etc/gshadow”的一致性進行校驗。如果錯誤,系統將提示用戶對出現錯誤的數據項進行修改或刪除。
五、linux用戶管理命令
1.useradd 添加用戶
當使用useradd命令不加參數選項,后面直接跟所添加的用戶名時,系統首先會讀取配置文件/etc/login.defs和/etc/default/useradd文件中所配置的信息建立用戶的家目錄,並復制/etc/skel中的所有文件(包括隱藏的環境配置文件)到新用戶的家目錄中。
useradd語法
[root@localhost ~]# man useradd useradd -D [options] |
命令選項
-c comment :新賬戶的password的說明欄 -u: 指定 UID 標記號。這個值是唯一的,除非用-o選項。數字不可為負值 -d: 指定宿主目錄,缺省為 /home/用戶名 -e: 指定帳號失效時間 -f: 賬戶過期幾天后永久停權。 -g: 指定所屬的基本組(組名或GID) -G: 指定所屬的附加組(組名或GID) -m: 用戶目錄如不存在則自動建立。 -M: 不為用戶建立並初始化宿主目錄。優先於/etc/login.defs文件的設定。 -n: 默認情況下,用戶的用戶組和用戶的名稱會相同,如果命令加了-n參數,就不會生成和用戶同名的用戶組 -r: 用來建立系統賬戶。系統賬戶的UID會比定義在/etc/login.defs的UID_MIN來的小。 -s: 指定用戶的登錄Shell |
passwd 設置密碼
普通用戶和超級用戶都可以運行passwd命令,但普通用戶只能更改自身的用戶密碼。超級用戶則可以設置或修改所有用戶的密碼
當直接passwd命令后面不接任何參數或用戶名時,則表示修改當前登陸用戶的密碼。
-d 清空密碼,僅root能操作
-f 強制操作,僅root能操作
-k 保留即將過期的用戶在期滿后仍能使用
-l 鎖定用戶賬戶;鎖定用戶無權更改其密碼,僅root能操作 -S 查看用戶賬戶的狀態 -u 解鎖用戶賬戶;僅root能操作 --stdin 從標准輸入取密碼
修改用戶密碼有效期:chage
語法:
格式:chage [選項] 用戶名
常用命令選項:
-d:將最近一次密碼設置時間設置為"最近時間"
-E:指定賬號過期時間,YYYY-MM-DD -I:指定當密碼失效后多少天鎖定賬號; -l:列出密碼有效期信息 -m:指定密碼的最小天數 -M:指定密碼的最大天數
-W:將過期警告天數設置為"警告天數"
id:查看用戶的帳號屬性信息
-u:只看UID -g:只看gid -G:只看GID -n:看名字,與其他選項連用
userdel 刪除賬戶
-r 連同主目錄一起刪除
添加組賬號groupadd命令
格式:groupadd [-g GID] 組名
選項:
-g gid:指定組ID號。 -o:允許組ID號,不必惟一。 -r:添加系統組,低於499系統賬號。
刪除用戶組groupdel命令
格式:groupdel 組名 刪除的目標組不能是用戶的基本組
gpasswd命令 管理組
語法:
格式:gpasswd [選項] 組名
選項:
-A 定義組管理員列表 -a 添加組成員,每次只能加一個 -d 刪除組成員,每次只能刪一個 -M 定義組成員列表,可設置多個,用“,”分開——定義的組成員必須是已存在用戶的 -r 移除密碼
切換所屬基本組newgrp命令
newgrp GRPNAME <--> exit //臨時切換屬組
查看用戶的組信息
groups 命令
格式:groups [用戶名]
groupmod:更改群組和名稱
-g GID -n GRPNAME
修改用戶賬號的屬性
語法:
格式:usermod [選項] 用戶名
常用命令選項:
-c:指定注釋信息 -d -m:-d一般跟-m使用,既指定新的家目錄位置,又移動其此前的文件至新的家目錄當中 -e:指定賬號失效時間 -g:指定所屬的基本組(組名或GID) -a -G GID:不使用-a選項,會覆蓋此前的附加組; -l:更改用戶賬號的登陸名稱 -L:鎖定用戶賬號 -s:指定用戶登錄Shell -u:指定UID標志號 -U:解鎖用戶賬號