运维基础--Linux用户和组的管理
用戶和組的管理
? 系統(tǒng)中,創(chuàng)建用戶和群組的目的,就是對(duì)系統(tǒng)資源進(jìn)行權(quán)限的統(tǒng)一分配管理。好比說(shuō),在一個(gè)公司內(nèi)的資源,不同級(jí)別的在職員工對(duì)資源的利用權(quán)限需要進(jìn)行統(tǒng)一分配;?
如何避免權(quán)限分配后的濫用呢?
?用戶進(jìn)行權(quán)限使用的時(shí)候,都必須遵守Cisco公司開(kāi)發(fā)的AAA認(rèn)證體系,即:
? ?Authentication:認(rèn)證,核實(shí)身份是否正確
? ?Authorization: 授權(quán),對(duì)已經(jīng)核實(shí)身份的用戶進(jìn)行資源分配
? ?Accounting: 審計(jì),監(jiān)管資源被使用的情況;
進(jìn)行資源認(rèn)證的必要性最主要來(lái)源于計(jì)算機(jī)系統(tǒng)資源的有限性;在系統(tǒng)中,能夠?qū)崿F(xiàn)資源使用和完成任務(wù)的主體是:程序進(jìn)程;linux作為一個(gè)多用戶、多任務(wù)的操作系統(tǒng),進(jìn)程是以其發(fā)起者的身份運(yùn)行的:可以理解為,進(jìn)程的所有者就是發(fā)起者;在進(jìn)程上會(huì)將發(fā)起者標(biāo)記在進(jìn)程上;
? 當(dāng)進(jìn)程試圖訪問(wèn)資源的時(shí)候,安全上下文會(huì)去比對(duì)進(jìn)程的所有者和資源的所有者的關(guān)系;
? ? 首先查看進(jìn)程的所有者是不是資源的所有者:
? ? 如果是,就按照屬主的權(quán)限使用資源;
? ? 如果不是,則判斷進(jìn)程的所有者是否屬于資源所屬組:
? ? ? ? 如果是 按照屬組的權(quán)限使用資源;
? ? ? ? 如果不是,則直接進(jìn)入資源的其他人訪問(wèn)權(quán)限來(lái)使用資源;
因此這里引出了用戶的概念:
一、用戶
?1.用戶賬戶:就是計(jì)算機(jī)操作者在操作系統(tǒng)中的身份映射;//在滿足了認(rèn)證條件之后的身份映射;
?2.分類:
? ? ?超級(jí)用戶(管理員):root
? ? ?普通用戶:
? ? ? ?系統(tǒng)用戶:為了保證安全,必須讓那些運(yùn)行在后臺(tái)的進(jìn)程或者服務(wù)類進(jìn)程,以非管理員的身份運(yùn)行;一般不需要登錄到系統(tǒng)
? ? ? ?登錄用戶:能夠正常使用整個(gè)系統(tǒng)資源的用戶;
?3.用戶的標(biāo)識(shí)
? ? 1)用戶登錄名稱:為操作者準(zhǔn)備的簡(jiǎn)單易記的字符串標(biāo)識(shí)
? ? 2)用戶ID:為計(jì)算機(jī)系統(tǒng)準(zhǔn)備的數(shù)字標(biāo)識(shí);?
? ? ? ? 超級(jí)用戶:0;
? ? ? ? 系統(tǒng)用戶:CentOS 5、6:1-499;CentOS 7:1-999;
? ? ? ? 登錄用戶:CentOS 5、6:500-60000;CentOS 7:1000-60000 ? 6W+的標(biāo)識(shí)符是用戶自定義的標(biāo)識(shí);
? ? 3)名稱解析:名字<--->UID ; 解析庫(kù):/etc/passwd
? ? ?系統(tǒng)利用解析庫(kù)完成認(rèn)證機(jī)制:即驗(yàn)證登錄用戶是否是輸入的用戶;
? ? ?認(rèn)證庫(kù):
? ? ? ?用戶的認(rèn)證信息庫(kù);/etc/shadow
? ? ? ?組的認(rèn)真信息庫(kù):/etc/group
? ?采用密碼認(rèn)證機(jī)制
? ? ? ?設(shè)置密碼的一般性策略;
? ? ? ? ?1.盡量使用隨機(jī)字符串作為密碼;
? ? ? ? ?2.密碼長(zhǎng)度不要少于8字符;
? ? ? ? ?3.至少包括:大小寫字母、數(shù)字、標(biāo)點(diǎn)符號(hào)四類中的三類;
? ? ? ? ?4.不定期更換密碼;
? ? ?在linux中,保存到認(rèn)證庫(kù)中的密碼信息是經(jīng)過(guò)加密的方式保存的:
? ? ? ?hash單向加密算法;抽取原始數(shù)據(jù)是特征信息,數(shù)據(jù)指紋;
? ? ? ? ? 單向加密算法的特征:
? ? ? ? ? ? 1.只要數(shù)據(jù)相同,加密結(jié)果就必然相同
? ? ? ? ? ? 2.無(wú)論數(shù)據(jù)多大,加密結(jié)果定長(zhǎng)輸出
? ? ? ? ? ? 3.雪崩(蝴蝶)效應(yīng):原始信息修改一丁點(diǎn),加密后的結(jié)果大不同
? ? ? ? ? ? 4.不可逆
? ? ? ? ? ?常用的單向加密算法:
? ? ? ? ? ? ?md5(Message Digest 5): 128bit定長(zhǎng)輸出;
? ? ? ? ? ? ?shal(Secure Hash Algorithm) 160bit定長(zhǎng)輸出;sha224\256\384\512
? ? ? ? ? ?salt:隨機(jī)數(shù)
? ? ? ? ? ? ? /dec/random :僅僅只是從熵池中返回隨機(jī)數(shù);如果熵池中隨機(jī)數(shù)耗盡,則進(jìn)程被阻塞;
? ? ? ? ? ? ? /dev/urandom:先試圖從熵池中返回隨機(jī)數(shù),如果熵池耗盡,則利用偽隨機(jī)數(shù)生成器生成偽隨機(jī)數(shù);
而最終認(rèn)證字符串是:算法+salt+密碼
二、群組
?用戶組:可以將具有某些相同或相似屬性的用戶聯(lián)系在一起以便集中授權(quán)的這樣一種容器;
? ? 組的類別:
? ? ? 管理員組
? ? ? 普通用戶組:
? ? ? ? 系統(tǒng)組:
? ? ? ? 登陸組:
? ? ?組的標(biāo)識(shí)方法:
? ? ? ?組名:方便操作者使用的組的標(biāo)識(shí)
? ? ??組的ID(GID):為系統(tǒng)提供組標(biāo)識(shí)
? ? ? ? ?管理員組:0
? ? ? ? ?系統(tǒng)組:CentOS 5、6:1-499;CentOS 7 :1-999;
? ? ? ? ?登陸組:CentOS 5、6:500-60000 CentOS 7:1000-60000;
? ? ? 解析庫(kù):/etc/group 認(rèn)證庫(kù):/etc/gpasswd
? ? ? 組也需要密碼保護(hù);
? ? ? 如果組沒(méi)有設(shè)置密碼保護(hù),則不能隨時(shí)加入
? ? ? 以用戶為核心,來(lái)對(duì)組進(jìn)行分類:
? ? ? ? 用戶的主要組(基本組):primary group,對(duì)于用戶,這樣的組必須要有且只能有一個(gè);
? ? ? ? 用戶的附加組(附屬組,額外組):addition group。這樣的組對(duì)于用戶來(lái)說(shuō),可以沒(méi)有,可以有多個(gè);
? ? ? 根據(jù)組所容納的用戶來(lái)分:私有組和公共租;
? ? ? ? 私有組:組名和用戶登錄名相同,并且組中只有此用戶;
? ? ? ? 公共租:組織可以包含其他多個(gè)不同用戶;
? ? ? ? ?注意:默認(rèn)情況下,用戶的主要組都是其私有組;
用戶和組的管理(主要使用命令完成):
? 組管理相關(guān):
? ? groupadd groupdel groupmems groupmod groups?
? 用戶管理:
? ? useradd userdel usermod userhelper users
? 認(rèn)證管理相關(guān):
? ? passwd gpasswd chage?
? 其他相關(guān)管理:
? ? chsh finger su id?
/etc/passwd文件:
?格式:name:password:UID:GID:GECOS:directory:shell
? name:登錄名
? password:密碼字段,現(xiàn)使用了shadow機(jī)制的系統(tǒng)中,同常用"x"作為占位符;
? UID: 用戶的id
? GID:用戶的主要組的id
? GECOS:comment,注釋類的信息,現(xiàn)在一般都會(huì)用來(lái)存放用戶的說(shuō)明信息或者全名;
? directory:用戶的家目錄路徑(一般是絕對(duì)路徑);
? shell:用戶的默認(rèn)登錄shell 的絕對(duì)路徑
/etc/group文件:
? 格式: group_name:password:GID:user_list
? group_name:組名;
? password:組密碼占位符,默認(rèn)為空;
? GID:組的ID
? user_list:以該組為附加組的用戶的列表;
/etc/shadow文件:
? 格式:login name:encrypted password … …
? login name:用戶的登錄名;
? encrypted password:加密了的密碼
? ? 格式: $算法$salt+$真正意義的加密密碼;
? ? ?如果該位置!,則表明用戶的密碼被禁用;
? ? ?如果該位置*,則表明該用戶是系統(tǒng)用戶不能登錄
? ? ?如果該位置為空:則表明用戶可以無(wú)數(shù)如密碼即可登錄,不推薦
? ?date of last password change:
? ? ?相對(duì)時(shí)間概念,1970.1.1到最后一次修改密碼的時(shí)間
? ?mimimum password age:
? ? ?在多長(zhǎng)時(shí)間內(nèi)無(wú)法修改密碼,默認(rèn)是0 ,意即 隨時(shí)可以改密碼,
? ?maximum password age:
? ? ?在多長(zhǎng)時(shí)間過(guò)后密碼過(guò)期,默認(rèn)99999;意為永久有效;
? ?password warning period:
? ? ? 密碼過(guò)期之前的友善提醒天數(shù),默認(rèn)7天;
? ?password inactivity period
? ? ? 密碼過(guò)期之后的寬限期,默認(rèn)為-1,意思是永久寬限
? ?Account expiration date:
? ? ? 一個(gè)用戶賬戶密碼過(guò)期的日期,是一個(gè)絕對(duì)期限;
? ?reserved field
? ? ?保留字段,以備以后使用;
?/etc/gpasswd
?組的管理命令:
? ?1.groupadd:新建組賬戶。
? ? ? -g ?gid:在創(chuàng)建組賬戶的時(shí)候,指定組賬戶的GID,如果不使用該選項(xiàng),系統(tǒng)會(huì)選擇在組解析文件中出現(xiàn)的不大于60000的最大GID加1;
? ? ? -r :創(chuàng)建系統(tǒng)組,意思就是創(chuàng)建一個(gè)GID在1-999/1-499之間的組;
? ?2.groupmod:修改組的相關(guān)屬性信息;
? ? ?-g ?gid:修改組ID
? ? ?-n ?修改組名
? ?3.groupdel:刪除組賬戶
? ? ?注意:如果某個(gè)組是某個(gè)用戶的主要組或私有組,則該組無(wú)法刪除;
?用戶管理命令:
? ?1.useradd:添加用戶賬戶;
? ? ? /etc/default/useradd
? ? ? /etc/login.defs
? ? ? /etc/ske1;
? ? 以上三個(gè)文件和目錄能夠幫助管理員在未指定任何選項(xiàng)時(shí),也能創(chuàng)建用戶,并為用戶賦予默認(rèn)的屬性
? ? 【選項(xiàng)】
? ? ? -c,--comment ‘COMMENT’在創(chuàng)建用戶時(shí)為用戶添加注釋信息,一般為全民
? ? ? -d,--home /PATH/TO/HOME_DIR:在創(chuàng)建用戶時(shí),為用戶指定的家目錄的絕對(duì)路徑,被指定的目錄應(yīng)該是實(shí)現(xiàn)不存在的目錄;
? ? ? -g,--gid GROUP :在創(chuàng)建用戶時(shí),為用戶指定主組;
? ? ? -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]:每個(gè)組都用逗號(hào)隔開(kāi),沒(méi)有中間的空格。創(chuàng)建用戶時(shí),為用戶添加附加組;
? ? ? -m,--create-home:創(chuàng)建用戶時(shí) ,強(qiáng)制性為用戶創(chuàng)建家目錄
? ? ? -M:創(chuàng)建用戶時(shí),不會(huì)創(chuàng)建用戶的家目錄,即使在/etc/login.defs里CREATE_HOME的值為yes也不創(chuàng)建;
? ? ? -r,--system ?:創(chuàng)建系統(tǒng)用戶;
? ? ? -u,--uid:創(chuàng)建用戶時(shí),為用戶指定UID,這個(gè)UID可以超過(guò)60000;
? ? ? -s,--shell /PATH/TO/SHELL :創(chuàng)建用戶時(shí),為用戶指定默認(rèn)shell;
? ? ? -D,--default 顯示或修改用戶默認(rèn)屬性值;
? ? ? ? -s,--shell ?/PATH/TO/SHELL ?:修改 /etc/default/useradd文件中SHELL的默認(rèn)值;
? ?2.usermod: 修改用戶賬戶信息:
? ? ? 選項(xiàng):
? ? ? ?-c,--comment 'COMMENT' 修改用戶的注釋信息
? ? ? ?-g,--gid GROUPNAME 修改用戶的主要組
? ? ? ?-G,--groupsGROUP1[,GROUP2,...[,GROUPN]]]:修改用戶的附加組為列表中的組(覆蓋)
? ? ? ? ?-a,--append: 與-G選項(xiàng)同時(shí)使用,給用戶添加心的附加組;
? ? ? ?-d,--homeHOME_DIR :修改用戶的家目錄;
? ? ? ? ?如果給了-m選項(xiàng),將舊的家目錄的數(shù)據(jù)移動(dòng)至新的家目錄中;
? ? ? ?-l:更改用戶的登錄名
? ? ? ?-s, --shellSHELL:修改用戶的登錄shell
? ? ? ?-u, --uidUID ?修改uid
? ? ? ?-L,--lock 鎖定用戶密碼
? ? ? ?-U,--unlock 解鎖用戶密碼;
? ?3.userdel:刪除用戶賬戶
? ? ? ?-r, --remove
? ? ? ? ? ?用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一起刪除。在其它文件系統(tǒng)中的文件必須手動(dòng)搜索并刪除。
用戶認(rèn)證相關(guān):
? ?1.passwd:設(shè)置和查看用戶的口令信息-密碼;
? ? ?passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
? ? ?如果省略用戶名,意味著修改當(dāng)前登錄用戶的密碼;如果指定用戶名,更改指定用戶的密碼,且只能root使用;
? ?【選項(xiàng)】:
? ? ? -l,--lock
? ? ? -u,--unlock
? ? ? ? 相比較usermod里的-L -U 其優(yōu)先級(jí)更高
? ? ? ? 如果使用usermod -L鎖定的用戶密碼,可以用passwd -u解鎖
? ? ? ? 而使用passwd -l鎖定的用戶密碼,不可以用usermod -U解鎖;
? ? ?-d,--delete :刪除用戶密碼,將/etc/shadow文件中的第二字段清空~!
? ? ?-S,--status :查看用戶密碼的狀態(tài)
? ? ?--stdin :借助管道,將輸入數(shù)據(jù)流當(dāng)作標(biāo)準(zhǔn)輸入信息送給passwd命令
? ? ? ? ? ? echo "PASSWORD" |passwd --stdin USERNAME
組認(rèn)證相關(guān):
? ? gpasswd:
? ? ?gpasswd 【選項(xiàng)】 groupname
? ? ? -a,--adduser ?向名為group的組中添加用戶
? ? ? -d,--deleteuser 從名為 group 的組中移除用戶 user。 ??
其他命令:
? su : 切換用戶身份;
? ? ?su USERNAME?
? ? ? ? 部分切換,半切換;即切換用戶時(shí),不會(huì)重新讀取目標(biāo)用戶的配置文件,因此用戶并沒(méi)有登陸行為,所以工作環(huán)境不初始化;
? ? ?su - USERNAME == su -l USERNAME ? ? ? ?
? ? ? ? ?登錄式切換,完全切換;即切換用戶時(shí),會(huì)重新讀取目標(biāo)用戶的配置文件,并且初始化工作環(huán)境;
? ? ?
? ? ?-c:并不會(huì)切換用戶身份,而是以目標(biāo)用戶的身份執(zhí)行某命令
? ? ?用su命令從root切換至普通用戶時(shí),無(wú)需密碼;反過(guò)來(lái),就必須給出目標(biāo)用戶的正確密碼否則切換失敗;
? ? ?進(jìn)行切換后不要連續(xù)切換,而是要用exit命令返回之前的用戶;
? newgrp:臨時(shí)更改當(dāng)前登錄用戶的主要組;exit返回之前的狀態(tài);
? id:顯示真實(shí)的有效的用戶和組的ID;
? ? ?所謂真實(shí)的:就是在/etc/passwd定義的用戶的UID&GID
? ? ?所謂有效的:就是指當(dāng)前生效的用戶的UID&GID
? ? ?【選項(xiàng)】
? ? ?-u,--user,只顯示用戶的有效的uid
? ? ?-g, 只顯示用戶的gid
? ? ?-G 顯示用戶的所有組的gid
? ? ?-n 顯示用戶和組的名字而不是id號(hào)
轉(zhuǎn)載于:https://blog.51cto.com/healerj9/1912211
總結(jié)
以上是生活随笔為你收集整理的运维基础--Linux用户和组的管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RabbitMQ之消息确认机制(事务+C
- 下一篇: express 框架中的参数小记