Linux是一個(gè)多用戶的操作系統(tǒng)晦嵌,為了實(shí)現(xiàn)資源分派及出于安全的考慮,必須對(duì)用戶進(jìn)行不同權(quán)限的分配。用戶組便于更高效地管理用戶權(quán)限理逊。
用戶操作Linux需要經(jīng)過(guò)三個(gè)步驟的權(quán)限認(rèn)證:
- Authentication:認(rèn)證
- Authorization:授權(quán)
- Accouting:審計(jì)
用戶及用戶組
用戶UID
- 管理員:root, 0
- 普通用戶:1-65535
- 系統(tǒng)用戶:1-499, 1-999(centos7) 作用:對(duì)守護(hù)進(jìn)程獲取資源進(jìn)行權(quán)限分配
- 登錄用戶:500+, 1000+
用戶組GID
- 管理員組:root, 0
- 普通組:
- 系統(tǒng)組:1-499, 1-999(centos7)
- 普通組:500+, 1000+
Linux安全上下文:
- 運(yùn)行中的程序:進(jìn)程 (process)
- 以進(jìn)程發(fā)起者的身份運(yùn)行:
- 進(jìn)程所能夠訪問(wèn)的所有資源的權(quán)限取決于進(jìn)程的發(fā)起者的身份端仰;
Linux組的類(lèi)別:
- 用戶的基本組(主組):組名同用戶名捶惜,且僅包含一個(gè)用戶:私有組
- 用戶的附加組(額外組):
Linux用戶和組相關(guān)的配置文件:
- /etc/passwd:用戶及其屬性信息(名稱、UID荔烧、基本組ID等等)吱七;
- /etc/group:組及其屬性信息;
- /etc/shadow:用戶密碼及其相關(guān)屬性鹤竭;
root:$6$LQX0XQPn8GGtl.WF$oLtdUxErgZFU7sGPWx9t4xGj/fSvb2IOZV6lp4t 1XfoGL8V/iayOtfqBrpqaOmxncY6RKAPhUouRqYbzilaAH/:16538:0:99999:7: ::
用戶名:加密了的密碼:最近一次更改密碼的日期:密碼的最小使用期限(修改之后至少要用多久才能再次修改):最大密碼使用期限(超過(guò)使用期限必須修改密碼):密碼警告時(shí)間段(提示修改密碼):密碼禁用期(登錄后必須修改密碼):賬戶過(guò)期日期(賬號(hào)被鎖定踊餐,須找管理員處理):保留字段
- /etc/gshadow:組密碼及其相關(guān)屬性;
加密機(jī)制
相同密碼的不同用戶其加密串也不同
[root@senlong tmp]# useradd tom
[root@senlong tmp]# useradd jerry
[root@senlong tmp]# echo 'redhat' | passwd --stdin tom
Changing password for user tom.
passwd: all authentication tokens updated successfully.
[root@senlong tmp]# echo 'redhat' | passwd --stdin jerry
Changing password for user jerry.
passwd: all authentication tokens updated successfully.
[root@senlong tmp]# tail -n 2 /etc/shadow
tom:$6$iZ29ET3u$eAxeb87ezlGjkcNPHkvHMievPk.57AinM0vpkI92yxcPY649kWg.2pgGTR01tBeAUDe7wLyWHx9DHVRHdxEeY.:17182:0:99999:7:::
jerry:$6$aSOCF9UE$WYjJi4V6f0hHfx2FkfDWEwFgeROYLrio4e2rhjYdKsI5dtUgCkXmgwCVJ8zvIQ4r/33addrH/5j/o4Mi1S5Yg0:17182:0:99999:7:::
用戶和組相關(guān)命令
用戶創(chuàng)建:useradd
useradd [options] LOGIN
- -u UID: [UID_MIN, UID_MAX], 定義在/etc/login.defs
- -g GID:指明用戶所屬基本組臀稚,可為組名吝岭,也可以GID;
- -c "COMMENT":用戶的注釋信息烁涌;
- -d /PATH/TO/HOME_DIR: 以指定的路徑為家目錄苍碟;
- -s SHELL: 指明用戶的默認(rèn)shell程序,可用列表在/etc/shells文件中撮执;
- -G GROUP1[,GROUP2,...[,GROUPN]]]:為用戶指明附加組微峰;組必須事先存在;
- -r: 創(chuàng)建系統(tǒng)用戶
默認(rèn)值設(shè)定:/etc/default/useradd文件中
useradd -D
-s SHELL
[root@senlong tmp]# cat /etc/login.defs # 查看用戶帳號(hào)限制的文件
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500
UID_MAX 60000
...
組創(chuàng)建:groupadd
groupadd [OPTION]... group_name
- g GID: 指明GID號(hào)抒钱;[GID_MIN, GID_MAX]
- r: 創(chuàng)建系統(tǒng)組
切換用戶或以其他用戶身份執(zhí)行命令:su
su [options...] [-] [user [args...]]
切換用戶的方式:
- su UserName:非登錄式切換蜓肆,即不會(huì)讀取目標(biāo)用戶的配置文件颜凯;
- su - UserName:登錄式切換,會(huì)讀取目標(biāo)用戶的配置文件仗扬;完全切換症概;
Note:root su至其他用戶無(wú)須密碼;非root用戶切換時(shí)需要密碼早芭;
換個(gè)身份執(zhí)行命令:
su [-] UserName -c 'COMMAND'
用戶屬性修改:usermod
usermod [OPTION] login
- -u UID: 新UID
- -g GID: 新基本組
- -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組彼城,原來(lái)的附加組將會(huì)被覆蓋;若保留原有退个,則要同時(shí)使用-a選項(xiàng)募壕,表示append;
- -s SHELL:新的默認(rèn)SHELL语盈;
- -c 'COMMENT':新的注釋信息舱馅;
- -d HOME: 新的家目錄;原有家目錄中的文件不會(huì)同時(shí)移動(dòng)至新的家目錄刀荒;若要移動(dòng)代嗤,則同時(shí)使用-m選項(xiàng);
- -l login_name: 新的名字缠借;
- -L: lock指定用戶
- -U: unlock指定用戶
- -e YYYY-MM-DD: 指明用戶賬號(hào)過(guò)期日期干毅;
- -f INACTIVE: 設(shè)定非活動(dòng)期限;
給用戶添加密碼:passwd
passwd [OPTIONS] UserName: 修改指定用戶的密碼泼返,僅root用戶權(quán)限
passwd: 修改自己的密碼溶锭;
- -l: 鎖定指定用戶
- -u: 解鎖指定用戶
- -n mindays: 指定最短使用期限
- -x maxdays:最大使用期限
- -w warndays:提前多少天開(kāi)始警告
- -i inactivedays:非活動(dòng)期限;
- --stdin:從標(biāo)準(zhǔn)輸入接收用戶密碼符隙;
echo "PASSWORD" | passwd --stdin USERNAME
刪除用戶:userdel
userdel [OPTION]... login
- -r: 刪除用戶家目錄趴捅;
組屬性修改:groupmod
groupmod [OPTION]... group
- -n group_name: 新名字
- -g GID: 新的GID;
組刪除:groupdel
groupdel GROUP
組密碼:gpasswd
gpasswd [OPTION] GROUP
- -a user: 將user添加至指定組中霹疫;
- -d user: 刪除用戶user的以當(dāng)前組為組名的附加組
- -A user1,user2,...: 設(shè)置有管理權(quán)限的用戶列表
修改用戶屬性:chage
chage [OPTION]... LOGIN
- -d LAST_DAY
- -E, --expiredate EXPIRE_DATE
- -I, --inactive INACTIVE
- -m, --mindays MIN_DAYS
- -M, --maxdays MAX_DAYS
- -W, --warndays WARN_DAYS
權(quán)限管理:
文件的權(quán)限主要針對(duì)三類(lèi)對(duì)象進(jìn)行定義:
- owner: 屬主, u
- group: 屬組, g
- other: 其他, o
每個(gè)文件針對(duì)每類(lèi)訪問(wèn)者都定義了三種權(quán)限:
- r: Readable
- w: Writable
- x: eXcutable
文件:
- r: 可使用文件查看類(lèi)工具獲取其內(nèi)容拱绑;
- w: 可修改其內(nèi)容;
- x: 可以把此文件提請(qǐng)內(nèi)核啟動(dòng)為一個(gè)進(jìn)程丽蝎;
目錄:
- r: 可以使用ls查看此目錄中文件列表猎拨;
- w: 可在此目錄中創(chuàng)建文件,也可刪除此目錄中的文件屠阻;
- x: 可以使用ls -l查看此目錄中文件列表红省,可以cd進(jìn)入此目錄;
權(quán)限用數(shù)字表示
權(quán)限 | 二進(jìn)制 | 十進(jìn)制 |
---|---|---|
--- | 000 | 0 |
--x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r-- | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
簡(jiǎn)化記憶:讀(r) = 4 寫(xiě)(w) = 2 執(zhí)行(x) = 1
如:
640: rw-r-----
rwxr-xr-x: 755
修改文件權(quán)限:chmod
chmod [OPTION]... OCTAL-MODE FILE...
- -R: 遞歸修改權(quán)限
chmod [OPTION]... MODE[,MODE]... FILE...
修改一類(lèi)用戶的所有權(quán)限:
- u=
- g=
- o=
- ug=
- a=
- u=,g=
修改一類(lèi)用戶某位或某些位權(quán)限
- u+
- u-
修改文件的屬主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
- -R: 遞歸
修改文件的屬組:chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
- -R
umask
文件或目錄創(chuàng)建時(shí)的遮罩碼(指定了創(chuàng)建文件/目錄的默認(rèn)權(quán)限):umask
- FILE: 666-umask 如果某類(lèi)的用戶的權(quán)限減得的結(jié)果中存在x權(quán)限国觉,則將其權(quán)限+1(僅限文件)
- DIR: 777-umask
[root@senlong tmp]# umask # 查看掩碼
0022
[root@senlong tmp]# umask 3 # 修改掩碼
[root@senlong tmp]# umask
0003