? 要對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行相關(guān)的操作,就需要有賬號(hào),如果很多賬號(hào)需要對(duì)同一文件具有相同的操作權(quán)限皂吮,那么這個(gè)時(shí)候就涉及到組的概念了,我們可以將不同的賬號(hào)加入同一組中税手,使得該組的所有賬號(hào)擁有相同的操作權(quán)限蜂筹。日常的linux運(yùn)維中,就需要對(duì)賬號(hào)和組進(jìn)行管理芦倒,本文就用戶和組的增刪改操作進(jìn)行探討艺挪。
用戶和組的關(guān)系
用戶和用戶組的對(duì)應(yīng)關(guān)系有:一對(duì)一、一對(duì)多兵扬、多對(duì)一和多對(duì)多麻裳;下圖展示了這種關(guān)系:
一對(duì)一:即一個(gè)用戶可以存在一個(gè)組中,也可以是組中的唯一成員器钟。
一對(duì)多:即一個(gè)用戶可以存在多個(gè)用戶組中津坑。那么此用戶具有多個(gè)組的共同權(quán)限。
多對(duì)一:多個(gè)用戶可以存在一個(gè)組中傲霸,這些用戶具有和組相同的權(quán)限疆瑰。
多對(duì)多:多個(gè)用戶可以存在多個(gè)組中。其實(shí)就是上面三個(gè)對(duì)應(yīng)關(guān)系的擴(kuò)展昙啄。
id概念
linux中穆役,一般情況下用戶和組都會(huì)分配到一個(gè)專有的id,這個(gè)id也可以在創(chuàng)建時(shí)手動(dòng)自動(dòng),系統(tǒng)對(duì)賬號(hào)的管理是由id決定的梳凛,而非id對(duì)應(yīng)的名稱或者是組名耿币。比如同一id,名稱更改后韧拒,這個(gè)id的所擁有的權(quán)限還是一樣的淹接,但是同一名稱,將id調(diào)整后叛溢,所擁有的權(quán)限可能是不一樣的蹈集,比如講普通用戶的uid調(diào)整為0,那么用戶將獲得和root一樣的權(quán)限雇初。簡(jiǎn)單來(lái)說(shuō)拢肆,進(jìn)程所能夠訪問(wèn)資源的權(quán)限取決于進(jìn)程的運(yùn)行者的身份,而id就是所謂的身份靖诗。
在CentOS 6x 以及老版本 和 CentOS 7x里有在系統(tǒng)id的分配上有了變更
Linux用戶: Username/UID
管理員:root, 0
普通用戶:1-65535
系統(tǒng)用戶:1-499, 1-999(CentOS7)? 對(duì)守護(hù)進(jìn)程獲取資源進(jìn)行權(quán)限分配
登錄用戶:?500+, 1000+(CentOS7)
Linux組:Groupname/GID
管理員組:root, 0
普通組:
系統(tǒng)組:1-499, 1-999(CENTOS7)
普通組:500+, 1000+(CENTOS7)
在linux的組里郭怪,還分為主要組和附加組。一個(gè)用戶必須屬于一個(gè)刊橘,且僅有一個(gè)的主要組鄙才,但是一個(gè)用戶可以同時(shí)加入多個(gè)附加組里。
默認(rèn)情況下促绵,主要組是和用戶是同名的攒庵,而且主要組也是僅包含一個(gè)用戶嘴纺,這樣的組也叫私有組
配置文件
Linux用戶和組的主要配置文件有如下四個(gè):
/etc/passwd:用戶及其屬性信息(名稱、UID浓冒、主組ID等)
格式:賬號(hào):密碼:UID:GID:描述:家目錄:shell
描述:是關(guān)于賬號(hào)的描述栽渴,可以通過(guò)chfn這個(gè)命令來(lái)更改描述信息。
這里的UID和GID默認(rèn)情況下是一致的稳懒,但是通過(guò)手動(dòng)指定可以不一致
例子闲擦,系centOS6統(tǒng)里有賬號(hào)UID和GID此時(shí)最大值為524,執(zhí)行以下的語(yǔ)句
groupadd?-g?526?hong
useradd?terry4
useradd?terry5
此時(shí)/etc/passwd的結(jié)果如下
terry4:x:525:525::/home/terry4:/bin/bash
terry5:x:526:527::/home/terry5:/bin/bash
可以看到,雖然我們沒(méi)有指定新用戶 terry5的GID场梆,但是UID 不等于 GID?墅冷,是由于,terry4的GID是525,526已經(jīng)被hong通過(guò)手動(dòng)方法新建指定了或油,所以系統(tǒng)默認(rèn)新生成的GID為527.如果要使得UID 和 GID新建的賬號(hào)一致寞忿,可以通過(guò)手動(dòng)指定。
/etc/group:組及其屬性信息
格式:組名:密碼:GID:用戶列表
用戶列表:把該組作為附加組的用戶
密碼:通過(guò)gpasswd設(shè)定顶岸,指用戶輸入該密碼就可以通過(guò)newgrp臨時(shí)切換到該組罐脊,即將該組作為臨時(shí)的附加組,獲取到附加組的相關(guān)組的權(quán)限蜕琴,取消密組碼后萍桌,只有成員才可以通過(guò)newgrp命令切換入該組。
/etc/shadow:用戶密碼及其相關(guān)屬性
格式:用戶名:加密密碼:最后一次改密碼的時(shí)間:密碼最小使用時(shí)間:密碼最長(zhǎng)使用時(shí)間:密碼警告期:密碼寬限期:賬號(hào)過(guò)期時(shí)間:保留區(qū)間
最后一次改密碼的時(shí)間 和 賬號(hào)過(guò)期時(shí)間 都是相對(duì)1970年1月1日的天數(shù)凌简。
加密密碼:格式為$加密方式$鹽值$加密后的密碼上炎,鹽值的作用是保證了加密的強(qiáng)度,這個(gè)值是隨機(jī)數(shù)雏搂,相同密碼在鹽值不一樣的情況下藕施,加密后的密文是不一樣的。
警告期:用戶在密碼過(guò)期前幾天凸郑,提醒用戶更改密碼
密碼寬限期:用戶在密碼過(guò)期后的幾天裳食,可以更改密碼,如果還不更改密碼芙沥,該賬戶將會(huì)被系統(tǒng)鎖
/etc/gshadow:組密碼及其相關(guān)屬性
格式:組名:密碼:管理者:成員
密碼:格式和/etc/shadow里密碼格式一樣
管理者:指該用戶可以將其他用戶加入到該組里诲祸,通過(guò)gpasswd -a添加成員
成員:把該組作為附加組的用戶,用逗號(hào)隔開(kāi)不同的用戶
新建用戶的相關(guān)文件
/etc/default/useradd
/etc/skel/*
/etc/login.defs
etc/default/useradd文件的內(nèi)容而昨,提示useradd default file救氯,創(chuàng)建用戶時(shí)使用的默認(rèn)文件
GROUP = 100表示用戶組ID
HOME = /HOME表示家目錄的位置
INACTIVE = -1表示是否啟用帳號(hào)過(guò)期停權(quán),-1表示不啟用歌憨。
EXPIRE=表示賬號(hào)是否啟用過(guò)期設(shè)置無(wú)表示不啟用
SHELL = /bin/bash表示賬號(hào)使用shell種類
SKEL = /etc/skel表示賬號(hào)使用默認(rèn)文件內(nèi)容着憨, 可以理解為添加用戶的目錄默認(rèn)文件存放位置。也就是說(shuō)务嫡,當(dāng)用戶用useradd添加用戶時(shí)甲抖,用戶主目錄下的文件都是從這個(gè)目錄中復(fù)制的
CREATE_MAIL_SPOOL=yes表示是否創(chuàng)建郵箱緩存yes表示創(chuàng)建
/etc/skel–當(dāng)系統(tǒng)內(nèi)增加新用戶時(shí)漆改,該目錄下的所有文件都將被自動(dòng)復(fù)制到該用戶的主目錄默認(rèn)時(shí),這些文件中的大部分都是以(.)文件
/etc/login.defs文件定義了與/etc/passwd和/etc/shadow配套的用戶限制設(shè)定准谚。這個(gè)文件是需要的挫剑,缺失并不會(huì)影響系統(tǒng)的使用,但是也許會(huì)產(chǎn)生意想不到的錯(cuò)誤氛魁。
用戶和組管理命令
用戶管理命令
useradd:添加用戶
userdel:刪除賬號(hào)
usermod:修改使用者賬號(hào)
組帳號(hào)維護(hù)命令
groupadd:添加組
groupdel:刪除群組
groupmod:修改群組
下面我們通過(guò)增暮顺,刪厅篓,改的順序依次介紹
增加 用戶
useradd[options] LOGIN
-u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs
-o 配合-u 選項(xiàng)秀存,不檢查UID的唯一性
-g GID:指明用戶所屬基本組,可為組名羽氮,也可以GID
-c "COMMENT":用戶的注釋信息
-d HOME_DIR:以指定的路徑(不存在)為家目錄
-s SHELL: 指明用戶的默認(rèn)shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:為用戶指明附加組或链,組須事先存在
-N 不創(chuàng)建私用組做主組,使用users組做主組
-r: 創(chuàng)建系統(tǒng)用戶CentOS 6: ID<500档押,CentOS 7: ID<1000
例子:
useradd?-c?"test?terry6"?-d?/home/terry6?-G?terry3?terry6
表示增加用戶terry6,描述為 test terry6澳盐,指定用戶的家目錄為/home/terry6,并增加附加組為terry3
增加 組
groupadd[OPTION]... group_name
-g GID: 指明GID號(hào)令宿;[GID_MIN, GID_MAX]
-r: 創(chuàng)建系統(tǒng)組:CentOS 6: ID<500叼耙,CentOS 7: ID<1000
例子
groupadd?-g?528?terry7
表示增加組terry7,并指定GID 為528
刪除 用戶
userdel[OPTION]... login
-r: 刪除使用者賬號(hào)及相關(guān)文檔,如用戶的家目錄及郵箱的目錄粒没,反正筛婉,如果沒(méi)有-r,則只刪除賬號(hào),相關(guān)文檔沒(méi)刪掉
例子
userdel?-r?terry6
表示刪掉terry6,并且把terry6家目錄及郵箱的目錄都刪掉
刪除 組
groupdel
groupdel GROUP
例子
groupdel?terry3
表示刪掉了terry3這個(gè)群主癞松,但是terry3這個(gè)賬號(hào)還是存在爽撒,如果有任何一個(gè)群組的使用者在線上的話就不能移除該群組。如terry3還是用戶terry3的主組响蓉,最好先用命令usermod -g移除用戶terry3使用者后再移除群組硕勿。注意,userdel刪除用戶的同時(shí)把用戶的主組也刪掉了枫甲。
修改 用戶
usermod[OPTION] login
-u UID: 新UID
-g GID: 新主組
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組源武,原來(lái)的附加組將會(huì)被覆蓋;若保留原有想幻,則要同時(shí)使用-a選項(xiàng)
-s SHELL:新的默認(rèn)SHELL
-c 'COMMENT':新的注釋信息
-d HOME: 新家目錄不會(huì)自動(dòng)創(chuàng)建软能;若要?jiǎng)?chuàng)建新家目錄并移動(dòng)原家數(shù)據(jù),同時(shí)使用-m選項(xiàng)
-l login_name: 新的名字举畸;
-L: lock指定用戶,在/etc/shadow 密碼欄的增加!
-U: unlock指定用戶,將/etc/shadow 密碼欄的! 拿掉
-e YYYY-MM-DD: 指明用戶賬號(hào)過(guò)期日期
-f INACTIVE: 設(shè)定非活動(dòng)期限
例子
usermod?-s?/bin/bash?-d?/home/terry7?-e?2017-09-30?terry8
表示把terry8 的賬號(hào)的shell設(shè)置為/bin/bash查排,家目錄修改為/home/terry7,過(guò)期日期設(shè)置為2017-09-30
修改 組
groupmod[OPTION]... group
-n group_name: 新名字
-g GID: 新的GID
例子
groupmod?-n?terry3n?-g?523?terry3
表示把terry3的組名改成terry3n,GID改為523
除了以上的兩個(gè)命令對(duì)用戶和組進(jìn)行修改外抄沮,以下的命令也可以修改相關(guān)的屬性
pwck:檢查賬號(hào)的信息跋核,比如賬號(hào)沒(méi)有家目錄岖瑰,或者沒(méi)有密碼,就會(huì)報(bào)異常
grpck:檢查組信息砂代,比如同一組在/etc/group和/etc/gshadow的成員中不一致蹋订,就會(huì)報(bào)異常
修改密碼
passwd[OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權(quán)限刻伊,普通用戶也可以通過(guò)passwd: 修改自己的密碼
常用選項(xiàng):
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強(qiáng)制用戶下次登錄修改密碼
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開(kāi)始警告
-iinactivedays:非活動(dòng)期限
--stdin:從標(biāo)準(zhǔn)輸入接收用戶密碼
echo "PASSWORD" | passwd--stdinUSERNAME
修改用戶密碼策略
chage[OPTION]... LOGIN
-d LAST_DAY
-E --expiredateEXPIRE_DATE
-I --inactive INACTIVE
-m --mindaysMIN_DAYS
-M --maxdaysMAX_DAYS
-W --warndaysWARN_DAYS
–l 顯示密碼策略
例子
chage-d 0 tom 下一次tom登錄強(qiáng)制重設(shè)密碼
gpasswd[OPTION] GROUP
-a user: 將user添加至指定組中
-d user: 從指定組中移除用戶user
-A user1,user2,...: 設(shè)置有管理權(quán)限的用戶列表
newgrp命令:臨時(shí)切換主組露戒,如果用戶本不屬于此組,則需要組密碼
groupmems[options] [action]
options:
-g, --group groupname更改為指定組(只有root)
Actions:
-a, --add username 指定用戶加入組
-d, --delete username 從組中刪除用戶
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表
例子
groupmems -g tom -p
表示清除組tom的成員列表
groups [OPTION].[USERNAME]... 查看用戶所屬組列表
以上就是關(guān)于linux系統(tǒng)中用戶和組 增 刪 改 的相關(guān)概念和命令捶箱。