第一部分:用戶和組相關介紹
? ? ?1、用戶和組類型
? ? ? ? ? ? ? ? ? linux系統,用戶的類型分為兩大類:
- <1>管理員用戶:具有對Linux系統運行一些管理權限,系統上,初始的管理員用戶默認為root,UID為0。(UID為0則代表是管理員,不論用戶名是否為root)
- <2>普通用戶:普通用戶有分為系統用戶和普通登錄用戶
系統用戶:用來Linux系統上運行一些軟件和服務的用戶,大部分都是非交互式(shell程序為/sbin/nologin)的,UID范圍:1-499(centOS 6);1-999(centOS 7)
普通用戶:在系統上進行交互式的登錄完成某些操作的用戶,UID:500+(centOS 6);在1000+(centOS 7)
? ? ? ? ? ? ? ? ? Linux系統上,對應的組也分為兩大類:
- <1>管理員組:具有管理員權限的用戶所在的組,GID(組的身份標識)為0,默認是root組
- <2>普通組:分為系統組和普通組
系統組:1-499(centOS 6);1-999(centOS 7)
普通組:500+(centOS 6);1000+(centOS 7)
? ? ? ? ? ? ? ? ? Linux系統上用戶和組的對應關系:
- 主組:每個用戶必須要有且僅有一個主組,在創建用戶時默認是與用戶名同名
- 私有組:組名同用戶名,且組內僅有一個用戶的組
- 附加組:一個用戶可以有零個或多個附加組
? ? ?2、用戶和組管理涉及到的一些配置文件
? ? ? ? ? ? ? ? ? 配置文件目錄:
- ①/etc/passwd? ? ? ? ? ? ? ? ? ? ? 用戶及其屬性信息
- ②/etc/shadow? ? ? ? ? ? ? ? ? ? ? 用戶密碼及其相關屬性
- ③/etc/group? ? ? ? ? ? ? ? ? ? ? ? ?組及其屬性信息
- ④/etc/gshadow? ? ? ? ? ? ? ? ? ? 組密碼及其相關屬性
- ⑤/etc/default/useradd? ? ? ?新增用戶模板
- ⑥/etc/skel/*? ? ? ? ? ? ? ? ? ? ? ? ? ? ?新增用戶家目錄模板
- ⑦/etc/login.defs? ? ? ? ? ? ? ? ? ?關于用戶口令及組口令組成解釋及默認設置
? ? ? ? ? ? ? ? ? ?配置文件格式內容詳細解釋(內容較長,不喜可跳過)
①/etc/passwd? ? 用戶及其屬性信息
該配置文件里面主要是記錄用戶信息,每一行代表一個用戶的信息,每一行分為7個字段,分別表示:用戶名:密碼占位符:UID:GID:注釋信息:家目錄:默認shell
如下圖所示:
②/etc/shadow? ?用戶密碼及其相關屬性
該配置文件主要定義了用戶密碼相關的配置,每一行代表一個用戶的信息,每行有9個字段,分別表示:
用戶名:加密后的密碼:上次修改密碼的日期:最小使用期:最長使用期:警告期:寬限期限:賬戶有效期;保留字段
加密的密碼:分為三個$分隔,第一個后面是加密算法;第二個后面是salt;第三個才是加密后的密碼,CentOS6和CentOS上默認采取sha512單向加密算法進行加密
修改加密方式? ?authconfig? –passalgo=sha256? –update
最近一次改密碼的時期:如果值為0,則表示用戶下次登錄必須要更改密碼。(從1970-01-01算起)
最小使用期:密碼最短要使用多久(0表示隨時可被變更)
最長使用期:密碼最長要使用多久(99999表示永不過期)
警告期:?在最長使用期到期之前,提前多少天提示用戶(默認一周)
寬限期限:最大使用期限到期后寬限多少天
?賬戶有效期:賬號本身的有效期,(從1970-1-1算起)
保留字段:
如下圖所示:
③/etc/group? ? ? 組及其屬性信息
分為4個字段: 組名:密碼占位符:GID:用戶列表(分隔符為逗號)
如下圖所示:
④/etc/gshadow? ? ? ?組密碼及其相關屬性
每行有4個字段:組名:加密后的密碼(感嘆號加鎖):組管理員用戶的賬戶:用戶列表(分隔符為逗號)
如下圖所示:
⑤/etc/default/useradd? ? ? ?新增用戶模板
如下圖所示:
GROUP:表示當用戶創建利用-N選項不創建主組時,默認以哪個組作為主組
HOME:表示創建用戶時的家目錄位置
? INACTIVE:表示非活動期限,也就是密碼達到最大有效期后,用戶的在這短時間內登錄仍然能夠修改密碼,改密后正常使用
EXPIRE:表示賬號有效期
SHELL:創建用戶時用戶的默認shell
? SKEL:定義用戶家目錄相關配置文件和環境變量文件的拷貝模板目錄
CREATE_MAIL_SPOOL:表示是否在創建用戶時為其創建郵箱
⑥/etc/skel/*? ? ? ? 新增用戶家目錄模板目錄(都是隱藏文件)
如下圖所示:
⑦/etc/login.defs? ? ? ?關于用戶口令及組口令組成解釋及默認設置
如下圖所示:
MAIL_DIR:用戶郵件的目錄
PASS_MAX_DAYS:密碼最大有效期
PASS_MIN_DAYS:密碼最小有效期
PASS_MIN_LEN:密碼最短長度
PASS_WARN_AGE:密碼警告期
UID_MIN:默認最小UID
UID_MAX:默認最大UID
GID_MIN:默認最小GID
GID_MAX:默認最大GID
CREATE_HOME:是否為用戶自動創建家目錄
UMASK:創建用戶默認的UMASK值
第二部分:用戶管理命令
? ? ? ? ? ? ? ?用戶管理命令目錄:
① useradd? ? ② usermod? ? ③ userdel? ? ④ id? ? ⑤ su? ? ⑥ passwd? ? ⑦ chage? ? ⑧ 其他相關命令? ? ⑨批量創建用戶及批量修改用戶口令
? ? ? ? ? ? ? ?命令詳解:
- ① useradd? ? 創建用戶
- 語法:useradd [OPTIONS] USERNAME? ? 創建用戶
- ? ? ? ? ? ? ?useradd -D? ? 顯示新增用戶家目錄
- ? ? ? ? ? ? ?useradd -D [OPTIONS]? ? ?更改新增用戶模板默認設置
- 選項:
-u UID? ? ? ? ? ?指定UID
-o? ? ? ? ?不檢查UID的唯一性,可用來指定已存在的UID為自己的UID
-g GROUP? NAME? ? ? ? 指定主組
-G? GROUP? NAME1,GROUP? NAME2,…? ? ? ? ? 指定附加組
-c “DISCIPTION”? ? ? ? 指定注釋信息
-d? ? ? ? 指定家目錄(給定的目錄要事先不存在)
-N? ? ? ?表示不創建以自己的名稱命名的主組,而是以默認的user組作為自己的主組
-r? ? ? ? 表示創建系統用戶,系統賬號的家目錄、郵箱目錄都不會自動生成
-s SHELL? ? ? ? ?指定用戶SHELL類型
-M? ? ? ?不創建家目錄
useradd -D ?顯示或更改創建用戶時的默認配置,同cat? /etc/default/useradd
useradd -D -s SHELL? ?改變/etc/default/useradd文件里面默認shell的內容
useradd -D -b /DIR ?改變/etc/default/useradd文件里面默認家目錄的內容
- ② usermod? ? ? 用戶屬性修改
- 語法:usermod [OPTIONS] USERNAME
- 選項:
-u UID? ? ? ?指定新UID
-g GID? NAME? ? ?指定主組(組必須存在)
-G GROUP1,GROUP2,… NAME? ? 指定附加組(覆蓋原有的附加組,若要追加配合-a選項)
-s SHELL? ? ?指定新的SHELL
-c ‘DISCRIPTION’? ? ?指定新的注釋信息
-d ?/PATH/DIR ? 指定新的家目錄(新家目錄中不會自動創建,原家目錄中的文件不會同時移動至新的家目錄,如果要創建新家目錄的時候移動原家目錄的數據,要同時使用-m選項)
-l USERNAME? ? ?指定新的用戶名
-U ? 解鎖用戶 (即:去掉密碼前的?。?/p>
-L ? 鎖定用戶 (相當于在/etc/shadow密碼前加!)
-e? YYYY-mm-dd? ? ?指明用戶賬號的過期日期
-f ?DAYS? ? ? 指定賬戶密碼的寬限期限
- ③ userdel? ? ? 刪除用戶
- 語法:userdel [OPTIONS]… NAME,默認刪除用戶不會刪除用戶的家目錄和郵箱
- 選項: -r? ? ? ?刪除用戶的同時刪除家目錄和郵箱
- ④ id? ? 查看用戶相關ID信息
- 語法:id [OPTION]… [USERNAME]
- 選項:
-u ?顯示用戶UID
-g? ?顯示主組GID
-G ?顯示所屬的全部組ID
-n? ?顯示名稱,而非ID (需配合-u -g -G使用)
- ⑤ su? ? ?切換用戶或以其他用戶身份執行命令
登錄式切換:會重新讀取用戶的配置文件,切換至家目錄,完全切換。
格式:su –? NAME
su -l? NAME
非登錄式切換:不會讀取目標用戶的配置文件,且不改變當前工作目錄
格式:su? NAME
注意:管理員可以無密碼切換至其他任何用戶,非管理員在切換用戶時都需要給出目標用戶的密碼
特殊用法:su –root? -c ‘COMMAND’? 表示不切換用戶,而是僅以此用戶身份運行指定的命令,命令執行完成后即恢復原用戶(例:su –root? -c ‘cat? /etc/shadow’ 表示暫時用root身份查看一下文件)
- ⑥ passwd? ? ?設置密碼
- 格式:passwd? [OPTIONS]? ?NAME? ?修改指定用戶的密碼
passwd后不跟任何選項,表示修改自己的密碼
passwd 用戶名:用于root用戶修改其他用戶的密碼,不需要知道該用戶之前的密碼
- 選項:
-l,-u? ? ?鎖定和解鎖用戶,相當于在/etc/shadow密碼字段前加!和去掉!
-d? ? 刪除指定用戶密碼
-e DATE? ? ? 過期期限,日期
-i DAYS? ? ? ?寬限期限
-n DAYS? ? ? ?密碼最短使用期限
-x DAYS? ? ? ?密碼最長使用期限
-w DAYS? ? ? ?密碼警告期
-f? ? ? ?強制操作
對應是修改/etc/shadow里面相應的信息
–stdin 密碼來源重定向,從標準輸入接受用戶密碼
例:echo “123456” |passwd –stdin NAME? ? 為NAME用戶修改密碼為123456
- ⑦ chage?
- 格式:chage? [OPTION]? NAME
- 選項:
-d? ? ? ?修改用戶密碼最后的修改日期
-E? ? ? ?修改用戶密碼的過期期限
-W? ? ? 修改用戶密碼的警告期限
-m? ? ? ? 修改用戶密碼的最短有效期
-M? ? ? ? 修改用戶密碼的最長有效期
-I? ? ? ? ?修改用戶密碼失效后的寬限期
-l? NAME? ? ? ?顯示用戶口令詳情
示例:chage -d 0 tom 下一次登陸強制重設密碼
chage -m 0 -M 42 -W 14? tom
chage -E 2019-09-28 tom
- ⑧ 其他相關命令
groups [username] ?查看當前用戶屬于哪些組
getent passwd [username] ?相當于cat /etc/passwd中指定用戶名的行
getent shadow [username] ?相當于cat /etc/shadow中指定用戶名的行
getent group? NAME 相當于cat /etc/group中指定用戶名的行
getent gshadow NAME相當于cat /etc/gshadow中指定用戶名的行
- ⑨批量創建用戶及批量修改用戶口令
nano userlist.txt? ? ? 編輯要創建的新用戶列表(格式要正確,如tom:x:1001:1001:tom:/home/tom:/bin/bash)
newusers userlist.txt? ? ? 批量創建用戶
nano pass.txt? ? ?編輯對應的用戶口令(格式如: tom:tompasswd)
cat pass.txt | chpasswd? ? ?批量修改對應用戶口令
第三部分:組管理命令
? ? ? ? ? ? ? ?組管理命令目錄:
① groupadd? ? ② groupmod? ? ③ groupdel? ? ④ gpasswd? ? ⑤ groupmems? ? ⑥ groups
? ? ? ? ? ? ? ?命令詳解:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ① groupadd? ? ? 創建組
語法格式:groupadd? [OPTION]? ?group_name
常用選項:
-g GID? ? ? 指定GID
-r? ? ? ? ?創建系統組
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ② groupmod? ??修改和刪除組
語法格式:groupmod [選項] group_name
常用選項:
-g GID? ? ? 修改GID
-n newname? ? ? 修改組名
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③ groupdel? ?? 刪除組
語法格式:groupdel [OPTION]? group_name? ?(一般不用加選項,不能刪除組內有用戶的組)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ④ gpasswd? ?? 更改組密碼
格式:gpasswd? [OPTION]? GROUP
選項 :
-a NAME? ? ? 向組中添加用戶
-d NAME? ? ? 刪除組中用戶
-A? user1,user2,…設置有管理權限的用戶列表
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑤ groupmems? ? 更改和查看組成員
groupmems -l -g? GROUP_NAME ?顯示組內有哪些用戶
groupmems -a USERNAME -g GROUP_NAME ?向組內添加用戶
groupmems -d USERNAME -g GROUP_NAME ?刪除組內的用戶
groupmems -p -g GROUP_NAME ? 清空組內的所有用戶
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ⑥ groups? ?
groups [OPTIONS] USERNAME ?查看用戶屬于哪些組
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95403