用户及用户组管理(week1_day4)--技术流ken
?
本節(jié)內(nèi)容
?
useradd
userdel
usermod
groupadd
groupdel
?
用戶管理
?
為什么需要有用戶?
?
1. linux是一個(gè)多用戶系統(tǒng)
2. 權(quán)限管理(權(quán)限最小化)
?
用戶:存在的目錄是為了對(duì)系統(tǒng)中的資源做歸屬
密碼:存在的目的是為了對(duì)用戶做身份認(rèn)證
?
?
用戶和用戶組
用戶組,在用戶組中可以包含一個(gè)或者多個(gè)用戶
方便對(duì)多個(gè)用戶進(jìn)行授權(quán)操作
?
用戶管理相關(guān)文件
?
/etc/passwd:用戶基本信息
/etc/shadow:用戶密碼信息、過(guò)期時(shí)間等
/etc/group:用戶組信息
/etc/gshadow:用戶組密碼
/etc/default/useradd:創(chuàng)建用戶的默認(rèn)配置信息
/etc/skel/:用戶家目錄模板
/etc/login.defs:全局用戶設(shè)定信息
/etc/passwd:?每行是一個(gè)用戶,用來(lái)記錄用戶的基本信息,每行的格式
account:password:UID:GID:GECOS:directory:shell
?
accout:用戶名
password:用戶密碼,密碼位置默認(rèn)是x
UID:用戶身份id,用來(lái)唯一的標(biāo)識(shí)一個(gè)用戶
GID:用戶組id,用來(lái)在系統(tǒng)中唯一的標(biāo)識(shí)一個(gè)用戶組(這里指的是其基本組的組ID)
GECOS:用戶描述信息,可以空白,也可以隨意寫(useradd -c )
directory:用戶家目錄
shell:用戶所使用的shell類型
/bin/bash-->可以登錄系統(tǒng)
/sbin/nologin-->該用戶一定無(wú)法登錄系統(tǒng)
?
比如
?root ??: ??x ??: ???0 ???: ??????0 ??????:? ?newuser? : ?/root ?: ?/bin/bash
用戶名????密?碼????用戶id ??用戶所在組的id ?描述信息 ???家目錄 ???shell類型 ??
?
?
?
/etc/group
用戶組信息
linux,用戶一定是屬于一個(gè)組的
在linux中,創(chuàng)建用戶的時(shí)候,
會(huì)自動(dòng)創(chuàng)建一個(gè)組,組名和組id都和所創(chuàng)建的用戶相同
而且,該用戶會(huì)自動(dòng)加入到這個(gè)組中
?
?
c:x:1007:
組成:groupname:password:GID: [user1, user2.....]
groupname:組名
password:組密碼
GID:組id
[user1, user2.....]:改組中的用戶列表
?
?
概念
用戶的基本組(主組):當(dāng)前用戶具有哪個(gè)組的權(quán)限
用戶的附加組:用戶額外屬于的組
?
zx
主組:gp02
附加組:gp01、gp03
?
/etc/default/useradd
?定義創(chuàng)建用戶默認(rèn)選項(xiàng)的文件
# useradd defaults file???????# useradd默認(rèn)文件
GROUP=100???????????????#表示可創(chuàng)建普通組
HOME=/home?????????????#用戶的家目錄建在/home中;用戶家目錄的默認(rèn)創(chuàng)建地
INACTIVE=-1???????????????#是否啟用帳號(hào)過(guò)期停權(quán),-1表示不啟用;寬限天數(shù),0及以下數(shù)皆為無(wú)效數(shù)字
EXPIRE=???????????????????#帳號(hào)終止日期,不設(shè)置表示不啟用;帳號(hào)失效日期(如:20081212)
SHELL=/bin/bash????????????#所用SHELL的類型;登錄后執(zhí)行的程序
SKEL=/etc/skel??????????????#用戶家目錄中的環(huán)境文件,默認(rèn)添加用戶的目錄默認(rèn)文件存放位置;也就是說(shuō),當(dāng)我們用adduser添加用戶時(shí),用戶家目錄下的文件,都是從這個(gè)目錄中復(fù)制過(guò)去的;
CREATE_MAIL_SPOOL=yes ???#是否創(chuàng)建用戶郵件緩沖,yes表示創(chuàng)建
?
Linux中的用戶類別
?
可以登錄系統(tǒng)的用戶
管理員用戶:uid為0的用戶
普通用戶:就是可以登錄系統(tǒng),但是沒(méi)有管理員權(quán)限的用戶
不能登錄系統(tǒng)的用戶:
系統(tǒng)用戶:用來(lái)運(yùn)行一個(gè)程序,而不是用來(lái)登錄系統(tǒng)
?
?
各類用戶的id
管理員用戶:0
系統(tǒng)用戶:1-999
普通用戶:1000-60000(自定義uid最大4294967294)
?
系統(tǒng)用戶的特點(diǎn)
1.?因?yàn)椴恍枰卿?#xff0c;所以shell類型通常為/sbin/nologin
2.?系統(tǒng)用戶沒(méi)有家目錄
3.?系統(tǒng)用戶id通常是小于1000
?
Useradd命令
?
useradd [options] username
options:
-d, --home HOME_DIR:指定用戶家目錄
-c, --comment COMMENT:用戶說(shuō)明信息
-e, --expiredate EXPIRE_DATE:指的賬號(hào)的過(guò)期時(shí)間,時(shí)間格式?YYYY/MM/DD
-g, --gid GROUP:指的用戶的基本組的組id
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指的用戶的附加組列表
-u,--uid UID:指的用戶的uid
-m, --create-home:創(chuàng)建用戶的時(shí)候自動(dòng)創(chuàng)建用戶家目錄(默認(rèn)就已經(jīng)使用)
-M:不自動(dòng)創(chuàng)建用戶家目錄
-o, --non-unique:通常和-u一起使用,用來(lái)讓兩個(gè)用使用相同的uid
-r, --system:創(chuàng)建一個(gè)系統(tǒng)用戶
-s, --shell SHELL:在創(chuàng)建用戶的時(shí)候,指定用戶的shell類型
(/bin/bash/,/sbin/nlogin)
?
創(chuàng)建一個(gè)系統(tǒng)用戶
# useradd -s /sbin/nologin -M -r ken
?
passwd命令
?
passwd [[options] username]
(如果不指定用戶名,那么就是修改當(dāng)前用戶的密碼)
options:
--stdin
-l:鎖定用戶
-u:解鎖用戶
-d:刪除用戶密碼
-e:讓用戶密碼過(guò)期
echo?“?123“?| passwd --stdin ken
表示給ken用戶設(shè)置密碼123?(ken用戶必須存在)
設(shè)置密碼的原則
1.?長(zhǎng)度要夠
2.?密碼復(fù)雜度(數(shù)字+字母+特殊符號(hào))
?
Userdel命令
?
刪除用戶?userdel
userdel [options] username
options:
-r:在刪除用戶的時(shí)候,連同用戶數(shù)據(jù)一并刪除
?
?
創(chuàng)建用戶組?groupadd
?
groupadd [options] groupname
options:
-g GID:
-o:
?
?
刪除用戶組?groupdel
?
groupdel?groupname
?
Shadow文件詳解??
?
??zxhk: ?$6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 : ?7 ?: ??: ??: ??
?
第一段:用戶名:??
第二段:加密后的密碼??????
第三段:上次修改密碼舉例元年經(jīng)過(guò)的天數(shù)1970年1月1日(如果該字段空,意味著該用戶密碼被禁用)
第四段:密碼最短使用時(shí)間(0表示不限制)
第五段:密碼最長(zhǎng)有效期(99999表示不限制)(如果第5的值小于第四段,那么用戶無(wú)法修改自己的密碼)
第六段:密碼到期前幾天開(kāi)始發(fā)送告警,提示密碼即將過(guò)去,請(qǐng)立即修改
第七段:非活動(dòng)期間,密碼到期后的寬限時(shí)間(登錄系統(tǒng)的時(shí)候必須先修改密碼,才能登錄)
第八段:密碼過(guò)期時(shí)間(也是舉例計(jì)算機(jī)元年經(jīng)過(guò)的天數(shù))(這里和前面的幾個(gè)時(shí)間沒(méi)有聯(lián)系)
第九段:保留字段
常常聽(tīng)到:我的密碼忘記或者被更動(dòng)了?怎么辦? 有的時(shí)候會(huì)發(fā)生這樣的情況,就是說(shuō),你的 root 密碼忘記了!要怎么辦?重新安裝嗎?另外, 有的時(shí)候是被入侵了, root 的密碼被更動(dòng)過(guò),該如何是好? 這個(gè)時(shí)候就必須要使用到 /etc/shadow 這個(gè)資料了!我們剛剛知道密碼是存在這個(gè)檔案中的, 所以只要你能夠以各種可行的方法開(kāi)機(jī)進(jìn)入 Linux ,例如單人維護(hù)模式,或者是以 live CD (KNOPPIX) 來(lái)進(jìn)入 Linux 系統(tǒng)。之后,將硬碟順利掛載,然后進(jìn)入 /etc/shadow 這個(gè)檔案中,將 root 的密碼這一欄全部清空!然后再登入 Linux 一次,這個(gè)時(shí)候 root 將不需要密碼 (有的時(shí)候需要輸入空白字元) 就可以登入了!這個(gè)時(shí)候請(qǐng)趕快以 passwd 設(shè)定 root 密碼即可。??
?
Usermod命令
?
usermod [options] username
?
options
-g, --gid GROUP: 更 新 使 用 者 新 的 起 始 登 入 群 組 。 群 組 名 須 已 存 在 。
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:?定? 義? 使 用 者 為 一 堆 groups 的 成 員 。 每 個(gè) 群 組 使 用 ,區(qū) 格 開(kāi) 來(lái)
-u, --uid UID:?用 者 ID 值 。必 須 為 唯 一 的 ID 值?
-s, --shell SHELL:?指 定 新 登 入 shell 。 如 此 欄 留 白 , 系 統(tǒng) 將 選 用 系 統(tǒng) 預(yù) 設(shè) shell 。
-L, --lock: 鎖定用戶的密碼
-U : 解鎖用戶的密碼
-l, --login NEW_LOGIN :?變 更 使 用 者 login 時(shí) 的 名 稱 為 login_name 。
-e, --expiredate EXPIRE_DATE:加 上 使 用 者 帳 號(hào) 停 止 日 期 。 日 期 格 式 為 MM/DD/YY.
?
-d, --home HOME_DIR:更 新 使 用 者 新 的 登 入 目 錄 。
-m, --move-home:移動(dòng)用戶家目錄至新的位置
?
id命令
?
作用:用來(lái)查看指定的用戶的信息(或判斷用戶是否存在)
格式:id [-u|-g|-G] username
選項(xiàng)
-u:僅僅顯示用戶uid
-g:僅僅顯示用戶gid
-G:僅僅顯示用戶全部組id
?
su命令(switch user)
?
作用:進(jìn)行切換用戶
格式:su -?目標(biāo)用戶
?
su命令和su -命令最大的本質(zhì)區(qū)別就是:
前者只是切換了root身份,但Shell環(huán)境仍然是普通用戶的Shell;而后者連用戶和Shell環(huán)境一起切換成root身份了。只有切換了Shell環(huán)境才不會(huì)出現(xiàn)PATH環(huán)境變量錯(cuò)誤。su切換成
root用戶以后,pwd一下,發(fā)現(xiàn)工作目錄仍然是普通用戶的工作目錄;而用su -命令切換以后,工作目錄變成root的工作目錄了。用echo $PATH命令看一下su和su -以后的環(huán)境變量有
何不同。以此類推,要從當(dāng)前用戶切換到其它用戶也一樣,應(yīng)該使用su -命令
?
練習(xí)
?
1.?創(chuàng)建用戶java,uid 1000?基本組是gp001?附加組?gp002 gp003
?
2.?修改用戶java,
將名稱修改為python,
將uid修改為?2000,
修改主組是cats,
shell類型改為?/sbin/nologin
讓該用戶在10月1號(hào)到期
?
?
?
答案:
1.?
[root@ken ~] # useradd -u 1000 -g gp001 -G gp002,gp003 java?
2.
[root@ken ~]# usermod -l python -u 2000 -g cats -s /sbin/nologin -e 10/01 java?
轉(zhuǎn)載于:https://www.cnblogs.com/kenken2018/p/10267775.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的用户及用户组管理(week1_day4)--技术流ken的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 客户端产生CLOSE WAIT状态的解决
- 下一篇: kubernetes使用ansible快