用戶與組管理
如何成為L(zhǎng)inux用戶?
在Linux系統(tǒng)中,要想從系統(tǒng)中獲取資源、對(duì)系統(tǒng)進(jìn)行管理和控制,就需要向系統(tǒng)申請(qǐng)一個(gè)賬號(hào),從而實(shí)現(xiàn)特定用途,當(dāng)申請(qǐng)到賬號(hào)后,要對(duì)它設(shè)置口令,這樣用戶賬號(hào)就申請(qǐng)成功了,然后可以登陸系統(tǒng),當(dāng)用戶登陸系統(tǒng)時(shí),需要通過系統(tǒng)的認(rèn)證,認(rèn)證成功后才給予授權(quán),在用戶的使用過程中還會(huì)對(duì)用戶進(jìn)行審計(jì)。
為什么要設(shè)置用戶組?
是為了方便對(duì)不同類用戶進(jìn)行分組統(tǒng)一管理,例如:把一個(gè)公司的員工按職能的不同劃分為不同的部門從而實(shí)現(xiàn)不同部門進(jìn)行不同的管理方式是一個(gè)道理。
Linux中的用戶類別:
管理員用戶 root UID :0 又稱為超級(jí)用戶,擁有至高無上的權(quán)利,可以對(duì)Linux系統(tǒng)進(jìn)行任何操作,甚至可以刪除系統(tǒng)。
普通用戶:系統(tǒng)用戶 UID : 1-499(Centos6版本中),1-999(Centos7版本中)系統(tǒng)用戶是維護(hù)特定的一些服務(wù)運(yùn)行,對(duì)守 護(hù)進(jìn)程獲取資源進(jìn)行權(quán)限分配的賬號(hào)
登陸用戶 UID :500-60000 (Centos6版本中),1000-60000(Centos7版本中)登陸用戶就是可以登陸到系統(tǒng) 中,完成一些權(quán)限內(nèi)的操作,從而獲取所須資源的用戶。
Linux是如何認(rèn)識(shí)用戶名的呢?
其實(shí)系統(tǒng)是通過UID來標(biāo)識(shí)一個(gè)用戶的,當(dāng)你輸入用戶名登陸時(shí),其中進(jìn)行了名稱轉(zhuǎn)換,把用戶名轉(zhuǎn)換為了Linux能夠識(shí)別的UID號(hào),名稱轉(zhuǎn)換信息保存在/etc/passwd文件中
UID:UID是每個(gè)用戶身份標(biāo)識(shí),就像人的身份證一樣
Linux中的組類別:
按用戶類型分:
管理員組:root GID :0
普通用戶組:系統(tǒng)用戶組 GID : 1-499(Centos6版本中),1-999(Centos7版本中)
登陸用戶組 GID :500-60000 (Centos6版本中),1000-60000(Centos7版本中)
按所屬的主從關(guān)系來分:
基本組
附加組
按私有公有分:
私有組:組名同用戶名,并且只包含一個(gè)用戶
公共組:組內(nèi)包含了多個(gè)用戶
GID :每個(gè)組的身份標(biāo)識(shí)
同樣,GID也是Linux認(rèn)識(shí)這個(gè)組的標(biāo)識(shí),通過/etc/group文件中保存的信息進(jìn)行組名與UID的解析
與用戶相關(guān)的文件:
/etc/passwd文件:保存著用戶賬號(hào)的信息
解釋文件內(nèi)容:
第一列:登陸的用戶名
第二列:密碼占位符
第三列:UID
第四列:GID(所在組的)
第五列:注釋描述信息
第六列:用戶家目錄
第七列:用戶默認(rèn)使用的shell
[root@myhost ~]# getent passwd zhangsan
zhangsan:x:501:501::/home/zhangsan:/bin/bash
/etc/shadow:保存用戶的密碼信息
解釋文件內(nèi)容:
第一列:登陸的用戶名
第二列:用戶的密碼(一般用sha512加密)
第三列:從1970年1月1日起到密碼最近一次被修改的時(shí)間
第四列:密碼的最小有效時(shí)間
第五列:密碼的最大有效時(shí)間(99999表示永不過期)
第六列:密碼過期前幾天提醒
第七列:密碼的非活動(dòng)期限
第八列:從1970年1月1日起,多少天后賬號(hào)失效
[root@myhost ~]# getent shadow zhangsan
zhangsan:$6$y5uABHzk$5RFHTYLHA4cL.WfSW2Gd4tjOoefwJ4DNrvLzE8.shDViZqBe/JcZbLoN672LqEnl48F484pxg/AWFPZhwWM.Y/:17018:0:30:7:5:17383:
與組相關(guān)的文件:
/etc/group文件:保存組的信息
解釋文件內(nèi)容:
第一列:組名稱
第二列:組密碼占位符
第三列:組的ID
第四列:以當(dāng)前組為附加組的用戶列表
[root@myhost ~]# getent group mage
mage:x:504:lisi,wangwu,zhangsan
/etc/gshadow文件:保存組的密碼信息
解釋文件內(nèi)容:
第一列:組名稱
第二列:組密碼
第三列:組管理員列表(組管理員可以更改組密碼和族成員)
第四列:以當(dāng)前組為附加組的用戶名列表(分隔符為逗號(hào))
[root@myhost ~]# getent gshadow mage
mage:$6$5Blhu/UHz8UNGvz$9qj158ot4uvGDngNKUrzFyKB246zqSIK7Eo0JhKaUp1SubjI0of1NfGsRUVySB8xuG32hxwtayvlGG.pKWu1w1:lisi:lisi,wangwu,zhangsan
用戶管理命令:
useradd命令: 創(chuàng)建用戶
格式: useradd 選項(xiàng) 用戶名
常用選項(xiàng):
-u:指定UID
-o:配合-u選項(xiàng),不檢查UID的唯一性
-c:"描述信息"
-d:指定家目錄,指定的家目錄可以不存在,但上層目錄必須存在
-g:指定基本組或基本組GID
-G:指定附加組或GID
-M:不創(chuàng)建家目錄
-r:創(chuàng)建系統(tǒng)用戶
-s:指定登陸的shell
-D:查看useradd默認(rèn)配置文件,可與其他選項(xiàng)陪和,對(duì)默認(rèn)配置進(jìn)行更改
-N:不創(chuàng)建私用組主組,使用users組做主組
示例:
創(chuàng)建一個(gè)hehe用戶,UID為3000 家目錄為/testdir/hehe 附加組為root組 填寫描述信息為 ni hao
usermod命令:修改用戶的屬性信息
用法格式: usermod 選項(xiàng) 用戶名
選項(xiàng):
-u:修改UID
-c:修改"描述信息"
-d:修改家目錄
-g:修改基本組
-G:修改附加組,原來的附加組會(huì)被覆蓋
-a:與-G一同使用,用于為用戶追加新的附加組
-m:只能與-d選項(xiàng)一同使用,用于將原來的目錄移動(dòng)為新的家目錄
-s:修改登陸的shell
-l:修改登錄名
-e:設(shè)置用戶賬號(hào)的失效時(shí)間,XXXX-XX-XX
-L:鎖定用戶賬號(hào)密碼,禁止登陸(在密碼字符前加!)
-U:解鎖用戶密碼
示例:修改hehe用戶的UID為5000 再把hehe用戶添加附加組bin 設(shè)置用戶賬號(hào)在2016年10月1日失效
[root@localhost ~]# usermod -u 5000 -aG bin -e 2016-10-01 hehe
[root@localhost ~]# tail -1 /etc/passwd
hehe:x:5000:3000:nihao:/testdir/hehe:/bin/bash
[root@localhost ~]# groups hehe
hehe : hehe root bin
[root@localhost ~]# tail -1 /etc/shadow
hehe:!!:17017:0:99999:7::17075:
passwd命令:用于設(shè)置用戶密碼,鎖定和解鎖用戶密碼
格式:passwd 用戶名
選項(xiàng):
-d:清除用戶密碼,使之可無密碼登錄
-l:鎖定用戶密碼
-u:解鎖用戶密碼
-S:查看用戶密碼鎖定情況
-i:非活動(dòng)期限
--stdin :從標(biāo)準(zhǔn)輸入接收用戶密碼(在腳本的時(shí)候用的比較多)
[root@localhost ~]# passwd hehe
Changing password for user hehe.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd -l hehe
Locking password for user hehe.
passwd: Success
[root@localhost ~]# passwd -S hehe
hehe LK 2016-08-04 0 99999 7 -1 (Password locked.)
[root@localhost ~]# passwd -u hehe
Unlocking password for user hehe.
passwd: Success
[root@localhost ~]# passwd -S hehe
hehe PS 2016-08-04 0 99999 7 -1 (Password set, SHA512 crypt.
userdel 命令:刪除用戶
格式: userdel [選項(xiàng)] 用戶名
選項(xiàng): -r:刪除用戶同時(shí)刪除家目錄
[root@localhost ~]# tail -2 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
hehe:x:5000:3000:nihao:/testdir/hehe:/bin/bash
[root@localhost ~]# userdel -r hehe
[root@localhost ~]# tail -2 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
組管理命令:
groupadd命令:添加新組
格式:groupadd [選項(xiàng)] 組名
選項(xiàng):
-g:指定GID,默認(rèn)是上一個(gè)組的GID+1
-r:創(chuàng)建系統(tǒng)用戶
示例:創(chuàng)建一個(gè)組,組名為zhang GID為5000;
[root@myhost ~]# groupadd -g 5000 zhang
[root@myhost ~]# tail -1 /etc/group
zhang:x:5000:
groupmod命令:修改組信息
格式: groupmod [選項(xiàng)] 組名
選項(xiàng):
-g:修改組的GID
-n:修改組名
示例:把zhang組的GID改為3000,組名改為lisi
[root@myhost ~]# groupmod -g 3000 -n lisi zhang
[root@myhost ~]# tail -1 /etc/group
lisi:x:3000:
groupdel命令:刪除組
格式: groupdel 組名
gpasswd命令:向組中添加、刪除用戶,給組設(shè)置密碼
格式1:gpasswd [選項(xiàng)] 用戶名 組名 \\添加、刪除組成員
選項(xiàng):
-a:向組中添加用戶
-d:把組中的用戶移除出去
-M:刷新組列表(意思是可同是添加多個(gè)用戶,但原來組里的用戶將被移除)
示例:
[root@myhost ~]# useradd zhangsan
[root@myhost ~]# useradd lisi
[root@myhost ~]# useradd wangwu
[root@myhost ~]# groupadd mage
[root@myhost ~]# gpasswd -a lisi mage
Adding user lisi to group mage
[root@myhost ~]# groupmems -l -g mage
lisi
[root@myhost ~]# gpasswd -M zhangsan,wangwu mage
[root@myhost ~]# groupmems -l -g mage
zhangsan wangwu
[root@myhost ~]# gpasswd -d zhangsan mage
Removing user zhangsan from group mage
[root@myhost ~]# groupmems -l -g mage
wangwu
格式2:gpasswd 組名 //給組添加密碼
給組添加密碼的作用是,防止其他人切換到此組。
其他一些常用命令:
chage命令:修改用戶密碼
格式:chage [選項(xiàng)] 用戶名
選項(xiàng):
-d:修改用戶最近一次修改密碼的時(shí)間
修改為0的時(shí)候提醒用戶下次登陸修改密碼
-E:設(shè)置賬號(hào)的有效期
-w:修改密碼過期警告時(shí)間
-m:修改密碼最小的有效期
-M:設(shè)置密碼的最大有效期
-I:修改用戶的非活動(dòng)期限
示例:把zhangsan用戶的賬號(hào)有效期設(shè)置為1年,修改最大密碼期限為1個(gè)月,修改其飛活動(dòng)期限為5天
[root@myhost ~]# passwd zhangsan
Changing password for user zhangsan.
New password:
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@myhost ~]# chage -E 2017-08-05 -M 30 -I 5 zhangsan
[root@myhost ~]# tail -3 /etc/shadow
zhangsan:$6$y5uABHzk$5RFHTYLHA4cL.WfSW2Gd4tjOoefwJ4DNrvLzE8.shDViZqBe/JcZbLoN672LqEnl48F484pxg/AWFPZhwWM.Y/:17018:0:30:7:5:17383:
lisi:!!:17018:0:99999:7:::
wangwu:!!:17018:0:99999:7:::
groupmems命令:查看哪些用戶的附加組為此組
groupmems [選項(xiàng)] [選項(xiàng)] 組名
選項(xiàng):
-g:指定組
-l:查看組成員
-d:刪除指定的組成員
-p:清空組成員
-a:添加組成員
示例:
[root@myhost ~]# gpasswd -M zhangsan,lisi,wangwu mage
[root@myhost ~]# groupmems -l -g mage
zhangsan lisi wangwu
[root@myhost ~]# groupmems -d zhangsan -g mage
[root@myhost ~]# groupmems -l -g mage
lisi wangwu
[root@myhost ~]# groupmems -a zhangsan -g mage
[root@myhost ~]# groupmems -l -g mage
lisi wangwu zhangsan
id命令:顯示用戶的真實(shí)有效的ID
格式: id [選項(xiàng)] 用戶名
選項(xiàng):
-u:僅顯示有效的UID
-g:僅顯示用戶的基本組GID
-G:顯示用戶的所用組GID
-n:顯示名稱而非ID
示例:
[root@myhost ~]# id wangwu
uid=503(wangwu) gid=503(wangwu) groups=503(wangwu),504(mage)
[root@myhost ~]# id -u wangwu
503
[root@myhost ~]# id -g wangwu
503
[root@myhost ~]# id -G wangwu
503 504
[root@myhost ~]# id -ng wangwu
wangwu
[root@myhost ~]# id -nG wangwu
wangwu mage
su命令:切換用戶
格式1: su - 用戶名
登陸式切換,會(huì)通過讀取目標(biāo)用戶的配置文件俺來重新初始化(用戶環(huán)境也變化)
格式2: su 用戶名
非登錄式切換,不會(huì)讀取目標(biāo)用戶的配置文件進(jìn)行初始化 (用戶環(huán)境不變)
-c “命令”:su結(jié)合-c命令后面加上要執(zhí)行的命令,可以實(shí)現(xiàn)不切換用戶的身份即可運(yùn)行此處制定的命令
格式:su - 用戶 -c "命令"
注意:管理員可無密碼切換至其他任何用戶
chfn命令:給用戶添加描述信息
chsh -s /bin/bash 用戶名: 給指定用戶更改shell環(huán)境
getent 文件名 用戶名:查看指定用戶的指定文件的信息
newgrp命令:臨時(shí)全換到組(需要組密碼)
格式:newgrp 組名 用戶名
authconfig --passalgo=sha256 --update // 更改密碼的加密算法
newusers命令:批量添加用戶
格式:newusers 用戶名列表文件
chpasswd命令:批量添加密碼
格式:cat 密碼文件 | chpasswd
注意:批量添加用戶以后默認(rèn)家目錄里沒有任何文件,需要從/etc/skel/中復(fù)制過去
默認(rèn)不創(chuàng)建mail文件,給添加額用戶發(fā)送一個(gè)郵件就自動(dòng)創(chuàng)建了mail文件。
快捷命令:
vipw = vi /etc/passwd
vigr = vi /etc/group
pwck:檢查修改的passwd 文件
grpk:檢查修改了得group文件