概要:在學習Linux的初級階段,用戶管理是基礎管理的重要部分,任何命令的運行,系統的正常運轉,均離不開用戶管理的內容,本篇就為大家介紹下Linux用戶管理的一些基礎概念和一些基礎命令的用法。內容主要分為以下三個部分:
1、用戶和組的一些基礎內容介紹
2、用戶管理命令的詳解
3、組管理命令的詳解
涉及到的相關命令主要有:useradd、usermod、userdel、passwd、su、groupadd、chage、groupmod、groupdel、gpasswd、groups、groupmems、id等相關命令
第一部分 用戶和組管理的基礎內容介紹
1、用戶和組類型
linux系統上,用戶的類型分為兩大類:
<1>管理員用戶:具有對Linux系統運行一些管理權限的用戶,系統上,初始的管理員用戶默認為root,區分管理員用戶的標識其實是 UID(可理解為用戶的身份標識號碼),UID為0,則代表是管理員,不論用戶名是否為root
<2>普通用戶:普通用戶有分為系統用戶和普通登錄用戶
系統用戶:用來Linux系統上運行一些軟件和服務的用戶,大部分都是非登錄式的,UID范圍在CentOS6系列上默認是從1-499;在 CentOS7上默認是1-999
普通登錄用戶:在系統上進行交互式的登錄完成某些操作的用戶,UID范圍在在CentOS6系列上默認是從500+;在CentOS7上默認是 1000+
Linux系統上,對應的組也分為兩大類:
<1>管理員組:具有管理員權限的用戶所在的組,GID(組的身份標識)為0,默認是root組
<2>普通用戶組:
系統組:GID范圍在CentOS6系列上默認是從1-499;在CentOS7上默認是1-999
普通組:GID范圍在在CentOS6系列上默認是從500+;在CentOS7上默認是1000+
Linux系統上用戶和組的對應關系:
主組:每個用戶必須要有且僅有一個主組。在創建用戶時默認是與用戶名同名
私有組:組內僅有一個用戶的組
附加組:一個用戶可以有多個附加組
2、用戶和組管理涉及到的一些配置文件
/etc/passwd 用戶信息配置文件
該配置文件里面主要是記錄用戶信息,每一行代表一個用戶的信息,每一行分為7個字段,分別表示
用戶名:密碼占位符:UID:GID:注釋信息:家目錄:默認shell
如下圖所示:
/etc/shadow 用戶密碼配置文件
該配置文件主要定義了用戶密碼相關的配置,每一行代表一個用戶的信息,每行有9個字段,分別表示
用戶名:加密后的密碼:上次修改密碼的日期:最小使用期:最長使用期:警告期:寬限期限:賬戶有效期;保留字段
加密的密碼:
分為三個$分隔,第一個后面是加密算法;第二個后面是salt;第三個才是加密后的密碼,CentOS6和CentOS上默認采取sha512單向加密算法進行加密
上次修改密碼的時期:如果值為0,則表示用戶下次登錄必須要更改密碼,相對于1970-01-01經過的天數
chage -d0 USERNAME 能改該用戶的上次密碼更改日期為0
passwd -e USERNAME 能改該用戶的上次密碼更改日期為0
最小使用期:密碼最短要使用多久
最長使用期:密碼最長要使用多久
如果最長使用期小于最短使用期,則表示用戶不能更改密碼
警告期: 在最長使用期到期之前,提前多少天提示用戶
寬限期限:最大使用期限到期后寬限多少天
賬戶有效期:賬號本身的有效期,以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.def 用戶相關配置和密碼的主要配置文件
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值
第二部分 用戶管理命令詳解
1、useradd
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 /PATH/TO/DIR 指定家目錄,如果給定的目錄要事先不存在
-N 表示不創建以自己的名稱命名的主組,而是以默認的user組作為自己的主組
-r 表示創建系統用戶,系統賬號的家目錄、郵箱目錄都不會自動生成
-s SHELL 指定用戶SHELL類型
-M 不創建家目錄
useradd -D 顯示創建用戶時的默認配置,是加上就是顯示該文件的信息/etc/default/useradd
useradd -D -s SHELL 改變/etc/default/useradd文件里面定義默認shell的內容
useradd -D -b /DIR 改變/etc/default/useradd文件里面定義默認家目錄的內容
2、usermod
usermod命令:
語法:usermod [OPTIONS] USERNAME
選項:
-u UID 指定新UID
-g GID 指定行的基本組
-G GROUP1,GROUP2,… 指定附加組,覆蓋原有的附加組,要在原有的基礎上增加要加-a選項
-s SHELL 指定新的SHELL
-c ‘DISCRIPTION’ 指定新的注釋信息
-d /PATH/DIR 指定新的家目錄,新家目錄中不會自動創建,原家目錄中的文件不會同時移動至新的家目錄,如果要創建新家目錄的時候移動原家目錄的數據,要同時使用-m選項
-l USERNAME 指定新的用戶名
-U 解鎖用戶,實際是去掉密碼前的!
-L 鎖定用戶,相當于在/etc/shadow密碼前加!
-e YYYY-mm-dd 指明用戶賬號的過期日期
-f DAYS 指定賬戶密碼的寬限期限
3、userdel
userdel命令:userdel [OPTIONS]… USERNAME,默認刪除用戶不會刪除用戶的家目錄和郵箱
-r 可以刪除用戶的時候,同時刪除家目錄和郵箱
4、id
id 命令:
語法:id [OPTION]… [USERNAME]
選項:
-u 顯示用戶UID
-g 顯示主組GID
-G 顯示所在的全部的組ID
-n 顯示名稱,而非ID
5、passwd
passwd命令:修改密碼
格式:passwd [選項] 用戶名
passwd后不跟任何選項,表示修改自己的密碼
passwd 用戶名:用于root用戶修改其他用戶的密碼,不許要知道該用戶之前的密碼
選項:
-l,-u:鎖定和解鎖用戶,相當于在/etc/shadow密碼字段前加!和去掉!
-d:清除用戶的密碼串;
-e DATE過期期限,日期;
-i DAYS:寬限期限;
-n DAYS:密碼最短使用期限;
-x DAYS:密碼最長使用期限;
-w DAYS:密碼警告期;
對應是修改/etc/shadow里面相應的信息
–stdin 密碼來源重定向
例:echo “123456” |passwd –stdin nwc 為nwc用戶修改密碼為123456
6、chage
chage命令:更改用戶密碼的過期信息
格式:chage [選項] 用戶名
選項:
-d:修改用戶密碼最后的修改日期
-E:修改用戶密碼的過期期限
-W:修改用戶密碼的警告期限
-m:修修用戶密碼的最短有效期
-M:修改用戶密碼的最長有效期
7、su
su命令:切換用戶命令
登錄式切換:會重新讀取用戶的配置文件來重新初始化
格式:su – 用戶名
su -l 用戶名
非登錄式切換:不會讀取目標用戶的配置文件進行初始化
格式:su 用戶名
注意:管理員可以無密碼切換至其他任何用戶,非管理員在切換用戶時都需要給出目標用戶的密碼
特殊用法:
su – nwc -c COMMAND 表示不切換用戶,而是僅以此用戶身份運行指定的命令,命令執行完成后
8、其他用戶管理相關命令
groups [username] 查看當前用戶屬于哪些組:
id [username] 查看當前用戶屬于哪些組:
pwunconv 不轉換密碼,也就是將密碼存在/etc/passwd中,而不是用占位符x代替密碼,轉換后/etc/shadow文件將消失
pwconv 轉換密碼,將密碼存在/etc/shadow中
getent passwd [username] 相當于cat /etc/passwd中指定用戶名的行
getent shadow [username] 相當于cat /etc/shadow中指定用戶名的行
getent group [username] 相當于cat /etc/group中指定用戶名的行
getent gshadow [username] 相當于cat /etc/gshadow中指定用戶名的行
autoconfig –passalgo=md5 –update 可修改密碼的加密算法
chage -d0 USERNAME 能改該用戶的上次密碼更改日期為0
newgrp [GROUPNAME] 臨時切換當前用戶的主組到指定的組
strace ‘COMMAND’ 可以查看命令在內部做了哪些動作
第三部分 組管理命令詳解
1、groupadd
groupadd命令:添加用戶組命令
語法格式:groupadd [選項] group_name
常用選項:
-g GID:指定GID,默認是上一個組的GID+1
-r:創建系統組
2、groupmod
groupmod命令:修改組的屬性
語法格式:groupmod [選項] group_name
常用選項:
-g GID:修改GID
-n new_name:修改組名
3、groupdel
groupdel命令:刪除組
語法格式:groupdel [選項] group_name
一般不用加選項,且不能刪除組內有用戶的組
4、gpasswd
gpasswd命令:給組設置修改密碼(/etc/gshadow)
格式:gpasswd [選項] 組名
選項 :
-a 用戶名:向組中添加用戶
-d 用戶名:刪除組中用戶
不加選項代表給該組設置密碼
5、groupmems
groupmems命令:直接修改配置文件,永久有效
groupmems -l -g GROUP_NAME 顯示組內有哪些用戶
groupmems -a USERNAME -g GROUP_NAME 向組內添加用戶
groupmems -d USERNAME -g GROUP_NAME 刪除組內的用戶
groupmems -p -g GROUP_NAME 清空組內的所有用戶
6、groups
groups [OPTIONS] USERNAME 查看用戶屬于哪些組
7、利用newusers命令和chpasswd命令批量添加用戶
批量創建帳號:user1…user10
uid:3000-3009,shell:/bin/csh,home:/testdir/username
passwd:usernamepass
注意家目錄相關配置,使用戶正常登錄
原創文章,作者:M20-1倪文超,如若轉載,請注明出處:http://www.www58058.com/27143
很好