/etc/passwd 存儲用戶信息的文件/etc/shadow 存儲用戶密碼信息文件/etc/group 存儲了組信息/etc/sudoe" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > [Linux 安全運維] 第三章 Linux 用戶以及權(quán)限管理

[Linux 安全運維] 第三章 Linux 用戶以及權(quán)限管理

時間:2023-06-26 10:54:01 | 來源:網(wǎng)站運營

時間:2023-06-26 10:54:01 來源:網(wǎng)站運營

[Linux 安全運維] 第三章 Linux 用戶以及權(quán)限管理:命令速查:

/etc/passwd 存儲用戶信息的文件/etc/shadow 存儲用戶密碼信息文件/etc/group 存儲了組信息/etc/sudoers sudo 命令配置文件groupadd 添加組 -g 指定組IDgroupmod 修改組的屬性groupdel 刪除組useradd 添加用戶 -u 指定uid 號 -g 指定基本組 -G 指定附加組 -s 指定用戶登錄的命令解釋器 -s /sbin/nologin -s /bin/bash -M 不創(chuàng)建家目錄usermod 更新用戶信息userdel 刪除用戶 -r 刪除用戶時,同時刪除家目錄passwd 修改用戶密碼 -S 查看用戶密碼狀態(tài) -l 鎖定用戶 -u 解鎖用戶chage 修改密碼過期時間 -M 修改密碼最長有效期為多少天ln -s /tmp/ajest.txt /root/Desktop/ajest.txt 將/tmp/ajest.txt 文件創(chuàng)建快捷方式到/root/Desktop/ajest.txtchmod 修改文件或者目錄的權(quán)限 u-r 撤銷讀權(quán)限 u-w 撤銷寫權(quán)限 o=--- 其他用戶權(quán)限全部撤銷 o-r 撤銷其他用戶列出目錄的權(quán)限 o=rwx 修改其他用戶的權(quán)限 g=--- 修改所屬組的權(quán)限chmod 1777 /tmp/ 對目錄設(shè)置粘滯位chmod 2777 /tmp/rootDir 對目錄設(shè)置sgid 標識chown root /tmp/ajestDir/ajest.txt 修改文件所屬者為rootls -ld /tmp/rootDir/ 查看目錄的權(quán)限sudo 以其他用戶身份執(zhí)行命令su 切換用戶

Linux 用戶和組

用戶分類:

用戶信息文件

/etc/passwd 文件中存儲了所有用戶信息。

passwd 格式

該文件每一行是一個用戶信息,并且以: 為分隔符,一共7 段內(nèi)容。

root:x:0:0:root:/root:/bin/bash[--] - - - [--] [---] [--------] | | | | | | | | | | | | | +-> 7. Login shell | | | | | +---------> 6. Home directory | | | | +---------------> 5. GECOS | | | +-------------------> 4. GID | | +---------------------> 3. UID | +-----------------------> 2. Password +---------------------------> 1. Username
字段序號示例解釋說明
1root用戶名
2x密碼占位符用戶的密碼
x 代表有密碼
無內(nèi)容,用戶登錄系統(tǒng)無需密碼
30UID當前用戶的身份標識
0 就是超級管理員
40GID當前用戶的基本組ID
5root用戶的身份信息
大名
現(xiàn)已廢棄
6/root用戶家目錄超管:/root
普通用戶:/home/用戶名
7/bin/bash用戶登錄系統(tǒng)后
(默認)命令解釋器
/sbin/nologin 不允許登錄系統(tǒng)
/bin/sh
[root@localhost ~]# id rootuid=0(root) gid=0(root) groups=0(root)[root@localhost ~]#

用戶分類

用戶分類UID
普通用戶> 1000
程序用戶1 - 1000
超級管理員用戶0

用戶密碼文件

/etc/shadow 記錄了系統(tǒng)中用戶的密碼信息。

shadow 格式

該文件每一行記錄一個用戶的密碼信息,并且以: 作為分隔符,一共9 段內(nèi)容。

可以嘗試修改root 密碼。

root:$6$.IOzaCZc$f.u0fVe5QZb0mhm6UZvjcfa.un7vRXw8frfyoURLrOHmo7JsTI40a/iaQuHm/uCFqRuljfAyBCJDvOk7ZsCEM.:18765:0:99999:7:::passwd rootroot:$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/:18766:0:99999:7:::
字段序號示例含義說明
1root用戶名
2$6$T07ge8密碼密文sha-512 HASH 散列算法
salt 值
加密后的密文
318766密碼修改時間距離1970 年1 月1 日
密碼最近一次的修改時間(天)
40密碼最短有效期在最短有效期之內(nèi)不能修改密碼
3:三天之內(nèi)不可以修改自己的密碼
root 用戶不受此限制
599999密碼最長有效期密碼可以使用多長時間
建議設(shè)置成90 天
67密碼過期時間密碼過期前7 天會有警告提示
7密碼的不活躍期過了密碼有效期沒有修改密碼,
處于不活躍期,仍然可以登錄系統(tǒng)。
8賬戶失效時間密碼距離1970 年1 月1 日的失效時間(天)
9未分配功能
| 正常登錄系統(tǒng) | 仍然可以登錄系統(tǒng) |0 用戶不能修改密碼 3 用戶可以修改密碼 83 提示修改密碼 90 登錄 密碼鎖定|---------------------|------------------|--------------|---------|-------------->^ ^ ^ ^ ^密碼修改時間 密碼最短有效期 密碼過期時間 密碼最長有效期 密碼不活躍期

shadow 爆破

密碼密文:

$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/$id$salt$encrypted$加密方式$鹽值(隨機的)$密碼密文密碼密文加密方式:

man cryptshadow 文件爆破原理:

[root@localhost ~]# pythonPython 2.7.5 (default, Apr 11 2018, 07:36:10)[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import crypt>>> crypt.crypt("123.com","$6$T07ge8Py")'$6$T07ge8Py$3/./MkHtBbziE5UiB/PvR0vkcwtvCoV0G2uYuFfIpbDleXrPJ0BPPNkFZfOY1iTsap.pdxaMrkyXJ/jQ5nxiH0'>>> crypt.crypt("123456","$6$T07ge8Py")'$6$T07ge8Py$JFrusYYpGVwWWiqt99Zjs1SJ6h0k.68kigzB5RIswP64SvGeGTY5MlpSwuThUw3dPKcUT214xnReGwPvlbjU41'>>>

組信息文件

/etc/group 保存了組信息。

group 格式

該文件的每一行記錄了每一個組的信息,并且以: 作為分隔符,一共4 段內(nèi)容。

ajest:x:1000:ajest
字段數(shù)示例含義說明
1ajest組名用戶組的名稱,由字母或數(shù)字構(gòu)成。
2x密碼x 是密碼標識,
組密碼默認保存在 /etc/gshadow 文件中。
31000GIDGroup ID
4ajest群組用戶

組與用戶

先有組,再有用戶:

一個用戶可以有多個附加組。

基本組內(nèi)沒有任何用戶,才能被刪除。

組與用戶管理

組管理

組管理,主要包括如下操作:

建立組

建立組使用groupadd 命令。涉及的選項有:

新建class01 組:

[root@localhost ~]# groupadd class01[root@localhost ~]# tail -1 /etc/groupclass01:x:1001:[root@localhost ~]#新建class01 組,指定gid 為3000:

[root@localhost ~]# groupadd class01 -g 3000[root@localhost ~]# tail -1 /etc/groupclass01:x:3000:[root@localhost ~]#

更新組信息

可以使用groupmod 命令更新組信息。

修改class01 組的gid 為2000:

[root@localhost ~]# groupmod class01 -g 2000[root@localhost ~]# tail -1 /etc/groupclass01:x:2000:[root@localhost ~]#

刪除組

使用groupdel 命令可以刪除組。

刪除class01 組:

[root@localhost ~]# groupdel class01[root@localhost ~]#

用戶管理

用戶管理操作,主要包括:

建立用戶

可以通過useradd 命令創(chuàng)建用戶,在創(chuàng)建用戶的時候,可以通過選項指定用戶基本信息,主要選項有:

新建tom 用戶:

[root@localhost ~]# useradd tom[root@localhost ~]# id tomuid=1001(tom) gid=1001(tom) groups=1001(tom)[root@localhost ~]# tail -1 /etc/grouptom:x:1001:[root@localhost ~]#由以上命令結(jié)果可知,在創(chuàng)建tom 用戶時,沒有指定基本組,Linux 創(chuàng)建了一個名為tom 的組。可以通過查看日志,印證觀察到的結(jié)果。

[root@localhost ~]# grep "tom" /var/log/secure Feb 23 11:44:23 localhost useradd[57489]: new group: name=tom, GID=1001Feb 23 11:44:23 localhost useradd[57489]: new user: name=tom, UID=1001, GID=1001, home=/home/tom, shell=/bin/bash[root@localhost ~]#

修改用戶基本信息

可以通過usermod 命令修改用戶基本信息,包括UID、基本組、附加組等。

修改tom 用戶UID 為1500:

[root@localhost ~]# usermod tom -u 1500[root@localhost ~]# id tomuid=1500(tom) gid=1001(tom) groups=1001(tom)[root@localhost ~]#修改基本組為class01:

[root@localhost ~]# usermod tom -g class01[root@localhost ~]# id tomuid=1500(tom) gid=2000(class01) groups=2000(class01)[root@localhost ~]#修改附加組為class02:

[root@localhost ~]# groupadd class02[root@localhost ~]# usermod tom -G class02[root@localhost ~]# id tomuid=1500(tom) gid=2000(class01) groups=2000(class01),2001(class02)[root@localhost ~]#

刪除用戶

使用userdel 可以刪除用戶。默認情況下,創(chuàng)建用戶的時候,會自動在/home 目錄中,創(chuàng)建同名目錄作為家目錄,刪除用戶的時候,用戶家目錄,不會被刪除??梢酝ㄟ^-r 選項,在刪除用戶的同時,刪除用戶家目錄。

刪除tom 用戶,并刪除其家目錄:

[root@localhost ~]# ls /home/ajest tom[root@localhost ~]# userdel -r tomuserdel: group tom not removed because it is not the primary group of user tom.[root@localhost ~]# ls /homeajest[root@localhost ~]# id tomid: tom: no such user[root@localhost ~]#

用戶密碼管理

查看用戶密碼狀態(tài)

[root@localhost ~]# passwd -S AJESTAJEST LK 2023-02-23 0 99999 7 -1 (Password locked.)[root@localhost ~]#由以上信息可知有AJEST 用戶,用戶信息如下:

狀態(tài)值說明
AJEST用戶名
LK密碼狀態(tài):
LK,密碼鎖定
NP,沒有密碼
* PS,有可用密碼
2023-02-23創(chuàng)建時間
密碼最近一次修改時間
0最短有效期
99999最長有效期
7警告時間:
* 密碼過期前7 天警告
-1失效時間:
* -1 表示沒有失效時間
補充命令:

passwd -d AJEST 刪除AJEST 用戶密碼

設(shè)置用戶密碼

[root@localhost ~]# passwd AJEST Changing password for user AJEST.New password: BAD PASSWORD: The password is shorter than 8 charactersRetype new password: passwd: all authentication tokens updated successfully.[root@localhost ~]# passwd -S AJESTAJEST PS 2023-02-23 0 99999 7 -1 (Password set, SHA512 crypt.)[root@localhost ~]# grep "^AJEST" /etc/shadowAJEST:$6$MzB2AgMk$/EDXAAvDD6eOMmoRl2Qn4Ru3MR9qNkuNQTRPxuZKAdqtBUIlJBaqs4QG7Apj8ZRDBEFHsBYOiSnvmOaJA8nr30:19411:0:99999:7:::[root@localhost ~]#

鎖定用戶

[root@localhost ~]# passwd -l AJEST Locking password for user AJEST.passwd: Success[root@localhost ~]# passwd -S AJEST AJEST LK 2023-02-23 0 99999 7 -1 (Password locked.)[root@localhost ~]# grep "^AJEST" /etc/shadowAJEST:!!$6$MzB2AgMk$/EDXAAvDD6eOMmoRl2Qn4Ru3MR9qNkuNQTRPxuZKAdqtBUIlJBaqs4QG7Apj8ZRDBEFHsBYOiSnvmOaJA8nr30:19411:0:99999:7:::[root@localhost ~]#

解鎖賬戶

[root@localhost ~]# passwd -S AJEST AJEST LK 2023-02-23 0 99999 7 -1 (Password locked.)[root@localhost ~]# passwd -u AJEST Unlocking password for user AJEST.passwd: Success[root@localhost ~]# passwd -S AJEST AJEST PS 2023-02-23 0 99999 7 -1 (Password set, SHA512 crypt.)[root@localhost ~]# grep "^AJEST" /etc/shadowAJEST:$6$MzB2AgMk$/EDXAAvDD6eOMmoRl2Qn4Ru3MR9qNkuNQTRPxuZKAdqtBUIlJBaqs4QG7Apj8ZRDBEFHsBYOiSnvmOaJA8nr30:19411:0:99999:7:::[root@localhost ~]#

權(quán)限管理

Linux 系統(tǒng)中,通過ls -lh 命令查看文件或目錄的權(quán)限。Linux 權(quán)限管理,包括調(diào)整文件或目錄的權(quán)限。

權(quán)限分析

[root@localhost ~]# ls -lh...drwxr-xr-x. 2 root root 137 Feb 23 10:25 Desktop...-rw-r--r--. 1 root root 1.8K Feb 20 17:50 initial-setup-ks.cfg...[root@localhost ~]#ls -lh 命令結(jié)果中,每一行以空格為分隔符分為9 個字段(列)。

字段數(shù)例子說明
1drwxr-xr-x.文件或目錄權(quán)限
22如果文件類型是文件,表示文件的節(jié)點數(shù)
如果文件類型是目錄,表示子目錄的個數(shù)
3root所有者的名字
4root所有組的名字
5137文件大小
注意:不是目錄的大小。
6
7
8
Feb
23
10:25
文件最后一次修改時間
9Desktop文件或者目錄的名字

權(quán)限表達

文件或目錄權(quán)限,以含義分隔,分為5 個字段(列)。

d rwx r-x r-x .
字段數(shù)示例含義說明
1d文件類型- 文件
d 目錄
l 符號鏈接
c 字符型設(shè)備
b 塊設(shè)備
2rwx所有者權(quán)限u 所有者
3r-x所屬組的權(quán)限g 所屬組
4r-x其他用戶的權(quán)限o 其他用戶
5.
權(quán)限表達方式說明:

權(quán)限文件目錄
r讀取文件內(nèi)容列出目錄內(nèi)容
w修改文件內(nèi)容創(chuàng)建、刪除目錄中的文件
x執(zhí)行程序或腳本可以進入該目錄

權(quán)限驗證

[root@localhost ~]# su - ajestLast login: Fri Feb 24 09:51:06 CST 2023 on :0[ajest@localhost ~]$ touch /tmp/ajest.txt[ajest@localhost ~]$ echo "i love linux" >> /tmp/ajest.txt [ajest@localhost ~]$ cat /tmp/ajest.txt i love linux[ajest@localhost ~]$ /tmp/ajest.txt-bash: /tmp/ajest.txt: Permission denied[ajest@localhost ~]$ ls -l /tmp/ajest.txt -rw-rw-r-- 1 ajest ajest 13 Feb 24 09:57 /tmp/ajest.txt[ajest@localhost ~]$

八進制賦權(quán)法

八進制賦權(quán)法,即用八進制數(shù)表達文件或者目錄的權(quán)限,這種表達方式精煉方便。

權(quán)限位2 進制8 進制
---0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx1117
常見權(quán)限:

權(quán)限修改

chmod

chmod 命令有固定的使用格式,如下:

chmod 對象 運算符號 權(quán)限 文件或者目錄權(quán)限運算說明:

對象運算符號權(quán)限
u
g
o
a
+
-
=
r
w
x
t
s

文件權(quán)限演變

撤銷所有者讀權(quán)限:

[ajest@localhost ~]$ ls -l /tmp/ajest.txt -rw-rw-r-- 1 ajest ajest 13 Feb 24 09:57 /tmp/ajest.txt[ajest@localhost ~]$ chmod u-r /tmp/ajest.txt [ajest@localhost ~]$ cat /tmp/ajest.txt cat: /tmp/ajest.txt: Permission denied[ajest@localhost ~]$ ls -l /tmp/ajest.txt --w-rw-r-- 1 ajest ajest 13 Feb 24 09:57 /tmp/ajest.txt[ajest@localhost ~]$測試寫權(quán)限:

[ajest@localhost ~]$ echo "can i do it?" >> /tmp/ajest.txt [ajest@localhost ~]$撤銷寫權(quán)限:

[ajest@localhost ~]$ chmod u-w /tmp/ajest.txt [ajest@localhost ~]$ echo "can i do it?" >> /tmp/ajest.txt -bash: /tmp/ajest.txt: Permission denied[ajest@localhost ~]$ ls -l /tmp/ajest.txt ----rw-r-- 1 ajest ajest 26 Feb 24 09:59 /tmp/ajest.txt[ajest@localhost ~]$思考:

[root@localhost ~]# cat /tmp/ajest.txt i love linuxcan i do it?[root@localhost ~]#權(quán)限從左向右匹配,先匹配,先生效。

目錄權(quán)限演變

切換root 用戶,并且創(chuàng)建目錄/tmp/rootdir/。

[root@localhost ~]# mkdir /tmp/rootdir[root@localhost ~]# ls -ld /tmp/root-rw-r--r-- 1 root root 13 Feb 24 09:55 /tmp/root[root@localhost ~]#新建文件/tmp/rootdir/root.txt,并輸入內(nèi)容“this is from root”。

[root@localhost ~]# echo "this is from root" >> /tmp/rootdir/root.txt[root@localhost ~]# ls /tmp/rootdir/root.txt[root@localhost ~]#切換ajest 用戶,嘗試進入目錄/tmp/rootdir/,并新建文件ajest.txt,內(nèi)容為“this is from ajest”。

[root@localhost ~]# su - ajestLast login: Fri Feb 24 09:56:34 CST 2023 on pts/0[ajest@localhost ~]$ cd /tmp/rootdir/[ajest@localhost rootdir]$ echo "this is from ajest" >> ajest.txt-bash: ajest.txt: Permission denied[ajest@localhost rootdir]$ ls -ld /tmp/rootdir/drwxr-xr-x 2 root root 22 Feb 24 10:05 /tmp/rootdir/[ajest@localhost rootdir]$發(fā)現(xiàn)操作無法完成,報錯信息為權(quán)限不允許,查看目錄權(quán)限可知,其他用戶對該目錄沒有寫權(quán)限,也就是說,其他用戶不能在該目錄中,創(chuàng)建、刪除文件。

切換root 用戶,修改其他用戶對目錄/tmp/rootdir 的權(quán)限為0。

[root@localhost ~]# ls -ld /tmp/rootdir/drwxr-xr-x 2 root root 22 Feb 24 10:05 /tmp/rootdir/[root@localhost ~]# chmod o=--- /tmp/rootdir/[root@localhost ~]# su - ajestLast login: Fri Feb 24 10:07:44 CST 2023 on pts/0[ajest@localhost ~]$ cd /tmp/rootdir/-bash: cd: /tmp/rootdir/: Permission denied[ajest@localhost ~]$ ls -ld /tmp/rootdir/drwxr-x--- 2 root root 22 Feb 24 10:05 /tmp/rootdir/[ajest@localhost ~]$查看/root/rootdir 目錄權(quán)限,發(fā)現(xiàn)其他用戶對該目錄權(quán)限為0,沒有執(zhí)行權(quán)限,即其他用戶不能進入該目錄。

調(diào)整/root/rootdir 目錄權(quán)限,調(diào)整其他用戶對該目錄的權(quán)限為7:

[root@localhost ~]# chmod o=rwx /tmp/rootdir/[root@localhost ~]# su - ajestLast login: Fri Feb 24 10:12:46 CST 2023 on pts/0[ajest@localhost ~]$ echo "this is from ajest" >> /tmp/rootdir/ajest.txt[ajest@localhost ~]$ ls /tmp/rootdir/ajest.txt root.txt[ajest@localhost ~]$ rm -rf /tmp/rootdir/ajest.txt [ajest@localhost ~]$ echo "this is from ajest" >> /tmp/rootdir/root.txt -bash: /tmp/rootdir/root.txt: Permission denied[ajest@localhost ~]$ rm -rf /tmp/rootdir/root.txt [ajest@localhost ~]$ ls /tmp/rootdir/[ajest@localhost ~]$

文件所屬

除了對文件權(quán)限進行調(diào)整以外,還可以調(diào)整文件的所有者。

chown

可以通過chown 命令,修改文件所有者,命令格式如下:

chown 修改后的所屬者 目標文件或者目錄常用命令選項:

修改文件所屬者

切換到ajest 用戶,創(chuàng)建目錄/tmp/ajestdir/,并在目錄中新建文件ajest.txt,內(nèi)容為“My Name is AJEST”:

[ajest@localhost ~]$ whoamiajest[ajest@localhost ~]$ mkdir /tmp/ajestdir/[ajest@localhost ~]$ echo "My Name is AJEST" >> /tmp/ajestdir/ajest.txt[ajest@localhost ~]$ ls -ld /tmp/ajestdir/drwxrwxr-x 2 ajest ajest 23 Feb 24 09:39 /tmp/ajestdir/[ajest@localhost ~]$ ls -l /tmp/ajestdir/ajest.txt -rw-rw-r-- 1 ajest ajest 17 Feb 24 09:39 /tmp/ajestdir/ajest.txt[ajest@localhost ~]$切換root 用戶,將文件/tmp/ajestdir/ajest.txt 的所有者修改為root:

[root@localhost ~]# chown root /tmp/ajestdir/ajest.txt [root@localhost ~]# ls -l /tmp/ajestdir/ajest.txt -rw-rw-r-- 1 root ajest 17 Feb 24 09:39 /tmp/ajestdir/ajest.txt[root@localhost ~]#切換ajest 用戶,嘗試向文件/tmp/ajestdir/ajest.txt 追加內(nèi)容“Can I do it?”:

[root@localhost ~]# su - ajestLast login: Thu Feb 23 17:31:10 CST 2023 on pts/0[ajest@localhost ~]$ echo "Can I do it?" >> /tmp/ajestdir/ajest.txt [ajest@localhost ~]$ cat /tmp/ajestdir/ajest.txt My Name is AJESTCan I do it?[ajest@localhost ~]$由以上命令結(jié)果可知,即使將文件/tmp/ajestdir/ajest.txt 的所有者修改為root,ajest 用戶依然可以向該文件中追加內(nèi)容,這是為什么呢?注意到,對該文件擁有寫權(quán)限的,除了所有者,還有所屬組,然而ajest 用戶在所屬組ajest 中,所以ajest 用依然對該文件有寫權(quán)限。

將文件/tmp/ajestdir/ajest.txt 文件所屬組的權(quán)限調(diào)整為0,再次測試ajest 是否可以向該文件中追加內(nèi)容。

[root@localhost ~]# chmod g=--- /tmp/ajestdir/ajest.txt [root@localhost ~]# ls -l /tmp/ajestdir/ajest.txt -rw----r-- 1 root ajest 30 Feb 24 09:43 /tmp/ajestdir/ajest.txt[root@localhost ~]# su - ajestLast login: Fri Feb 24 09:43:12 CST 2023 on pts/0[ajest@localhost ~]$ echo "Can I do it?" >> /tmp/ajestdir/ajest.txt -bash: /tmp/ajestdir/ajest.txt: Permission denied[ajest@localhost ~]$

特殊權(quán)限

粘滯位

粘滯位對目錄有效,在具備粘滯位旗標的目錄中創(chuàng)建的文件,只有所有者能夠刪除。

切換用戶ajest,創(chuàng)建文件/tmp/ajest.txt。切換用戶AJEST,創(chuàng)建文件/tmp/AJEST.txt。嘗試在AJEST 用戶下刪除文件/tmp/AJEST.txt。

[root@localhost ~]# su - ajestLast login: Fri Feb 24 10:33:45 CST 2023 on pts/0[ajest@localhost ~]$ touch /tmp/ajest.txt[ajest@localhost ~]$ ls -l /tmp/ajest.txt -rw-rw-r-- 1 ajest ajest 0 Feb 24 10:34 /tmp/ajest.txt[ajest@localhost ~]$ exitlogout[root@localhost ~]# su - AJESTLast login: Thu Feb 23 15:47:21 CST 2023 on pts/0[AJEST@localhost ~]$ touch /tmp/AJEST.txt[AJEST@localhost ~]$ ls -l /tmp/AJEST.txt -rw-r--r-- 1 AJEST class01 0 Feb 24 10:35 /tmp/AJEST.txt[AJEST@localhost ~]$ rm -rf /tmp/ajest.txt rm: cannot remove ‘/tmp/ajest.txt’: Operation not permitted[AJEST@localhost ~]$撤銷目錄/tmp/ 的粘滯位權(quán)限,切換用戶ajest,嘗試刪除文件/tmp/AJEST.txt。

[root@localhost ~]# su - ajestLast login: Mon Feb 27 09:21:19 CST 2023 on pts/0[ajest@localhost ~]$ find / -name "name.txt"find: ‘/run/user/0/gvfs’: Permission denied[ajest@localhost ~]$ find / -name "root.txt"find: ‘/run/user/0/gvfs’: Permission denied/tmp/rootdir/root.txt[ajest@localhost ~]$ chmod u-s /usr/bin/findchmod: changing permissions of ‘/usr/bin/find’: Operation not permitted[ajest@localhost ~]$ exitlogout[root@localhost ~]# chmod u-s /usr/bin/find[root@localhost ~]# su - ajestLast login: Mon Feb 27 10:40:05 CST 2023 on pts/0[ajest@localhost ~]$ find / -name "root.txt"...find: ‘/tmp/rootdir’: Permission denied...

SGID

特殊權(quán)限位SGID,對目錄有效,其含義是在目錄中建立的文件或目錄的屬組會繼承父目錄的屬組。

創(chuàng)建目錄/tmp/rootdir/,調(diào)整所有人對該目錄的權(quán)限為7,給該目錄這是sgid 權(quán)限。

[root@localhost ~]# mkdir /tmp/rootdir[root@localhost ~]# ls -ld /tmp/rootdir/drwxr-xr-x 2 root root 6 Feb 27 09:11 /tmp/rootdir/[root@localhost ~]# chmod a=rwx /tmp/rootdir/[root@localhost ~]# chmod g+s /tmp/rootdir/[root@localhost ~]# ls -ld /tmp/rootdir/drwxrwsrwx 2 root root 6 Feb 27 09:11 /tmp/rootdir/[root@localhost ~]#切換用戶ajest,新建文件/tmp/rootdir/ajest.txt。

[root@localhost ~]# su - ajestLast login: Fri Feb 24 10:39:32 CST 2023 on pts/0[ajest@localhost ~]$ touch /tmp/rootdir/ajest.txt[ajest@localhost ~]$ ls -l /tmp/rootdir/ajest.txt -rw-rw-r-- 1 ajest root 0 Feb 27 09:14 /tmp/rootdir/ajest.txt[ajest@localhost ~]$可以通過2777 參數(shù)設(shè)置sgid 特殊權(quán)限位。

[root@localhost ~]# mkdir /tmp/rootdir[root@localhost ~]# ls -ld /tmp/rootdir/drwxr-xr-x 2 root root 6 Feb 27 09:21 /tmp/rootdir/[root@localhost ~]# chmod 2777 /tmp/rootdir/[root@localhost ~]# ls -ld /tmp/rootdir/drwxrwsrwx 2 root root 6 Feb 27 09:21 /tmp/rootdir/[root@localhost ~]#

SUID

特殊權(quán)限位SUID,對可執(zhí)行文件有效。當一個可執(zhí)行文件具有SUID 標志,無論哪個用戶運行該文件(命令),誰就具有該文件所有者的權(quán)限。

查找find 命令,并賦予其suid 權(quán)限。

[root@localhost ~]# which find/usr/bin/find[root@localhost ~]# ls -l /usr/bin/find-rwxr-xr-x. 1 root root 199200 Nov 20 2015 /usr/bin/find[root@localhost ~]# chmod u+s /usr/bin/find [root@localhost ~]# ls -l /usr/bin/find-rwsr-xr-x. 1 root root 199200 Nov 20 2015 /usr/bin/find[root@localhost ~]#調(diào)整目錄/tmp/rootdir/ 權(quán)限,并創(chuàng)建文件/tmp/rootdir/root.txt。

[root@localhost ~]# chmod g-s /tmp/rootdir/[root@localhost ~]# ls -ld /tmp/rootdir/drwx------ 2 root root 6 Feb 27 09:21 /tmp/rootdir/[root@localhost ~]# touch /tmp/rootdir/root.txt[root@localhost ~]#切換用戶ajest,在根目錄中查找文件root.txt。

root@localhost ~]# su - ajestLast login: Mon Feb 27 09:21:19 CST 2023 on pts/0[ajest@localhost ~]$ find / -name "root.txt"find: ‘/run/user/0/gvfs’: Permission denied/tmp/rootdir/root.txt[ajest@localhost ~]$ exitlogout[root@localhost ~]# chmod u-s /usr/bin/find[root@localhost ~]# su - ajestLast login: Mon Feb 27 10:40:05 CST 2023 on pts/0[ajest@localhost ~]$ find / -name "root.txt"...find: ‘/tmp/rootdir’: Permission denied...SUID 提權(quán):

[root@localhost ~]# su - ajestLast login: Mon Feb 27 10:41:41 CST 2023 on pts/0[ajest@localhost ~]$ ls -l /usr/bin/find-rwsr-xr-x. 1 root root 199200 Nov 20 2015 /usr/bin/find[ajest@localhost ~]$ man find[ajest@localhost ~]$ find / -perm -4000find: ‘/proc/9079/task/9079/fd/5’: No such file or directoryfind: ‘/proc/9079/task/9079/fdinfo/5’: No such file or directoryfind: ‘/proc/9079/fd/6’: No such file or directoryfind: ‘/proc/9079/fdinfo/6’: No such file or directoryfind: ‘/run/user/0/gvfs’: Permission denied/usr/bin/find/usr/bin/fusermount/usr/bin/ksu/usr/bin/chfn/usr/bin/chsh/usr/bin/chage/usr/bin/gpasswd/usr/bin/passwd/usr/bin/newgrp/usr/bin/staprun/usr/bin/su/usr/bin/Xorg/usr/bin/umount/usr/bin/mount/usr/bin/pkexec/usr/bin/crontab/usr/bin/sudo/usr/bin/at/usr/sbin/pam_timestamp_check/usr/sbin/unix_chkpwd/usr/sbin/usernetctl/usr/sbin/userhelper/usr/sbin/mount.nfs/usr/lib/polkit-1/polkit-agent-helper-1/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache/usr/libexec/flatpak-bwrap/usr/libexec/dbus-1/dbus-daemon-launch-helper/usr/libexec/sssd/krb5_child/usr/libexec/sssd/ldap_child/usr/libexec/sssd/selinux_child/usr/libexec/sssd/proxy_child/usr/libexec/spice-gtk-x86_64/spice-client-glib-usb-acl-helper/usr/libexec/qemu-bridge-helper[ajest@localhost ~]$ find /tmp/rootdir/ -exec whoami /;rootroot[ajest@localhost ~]$

注意

sudo 權(quán)限控制

Linux 是多用戶多任務(wù)的分時操作系統(tǒng),共享該系統(tǒng)的用戶往往不只一個。考慮到root 賬戶密碼的敏感性和root 賬號的無限制權(quán)限,有必要采取如下措施:

sudo 命令就是來解決這個需求的。

sudo

sudo 執(zhí)行流程

一般情況下,使用sudo 都是在申請root 用戶身份特權(quán)執(zhí)行某一個命令,要求輸入密碼時,輸入的是當前用戶密碼。

具體某一個用戶可以以哪一個用戶身份執(zhí)行某一個命令,是需要配置的。

sudoers

配置文件/etc/sudoers 是sudo 命令的配置文件,編輯該文件需要使用專用的編輯器visudo。visudo 用法與vim 類似。

典型配置文件格式:

[root@localhost ~]# grep -n "^root" /etc/sudoers92:root ALL=(ALL) ALL[root@localhost ~]#配置文件sudoers 關(guān)于權(quán)限的配置,大概分為5 個字段,具體含義如下:

示例字段含義
root1授權(quán)用戶| 組
ALL2主機
(ALL:ALL)3用戶:組
授權(quán)用戶可以以此用戶身份特權(quán)執(zhí)行命令。
NOPASSWD:4是否需要輸入密碼驗證
ALL5命令1,命令2,...
配置示例,用戶ajest 可以以登錄在任何地址的任何用戶身份特權(quán)執(zhí)行whoami 和id 命令,并且沒有密碼保護。

[root@localhost ~]# grep -n "^ajest" /etc/sudoers1:ajest ALL=(ALL:ALL) NOPASSWD: /usr/bin/whoami, /usr/bin/id[root@localhost ~]#

測試命令

[ajest@localhost ~]$ sudo -lMatching Defaults entries for ajest on localhost: !visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin/:/bin/:/usr/sbin/:/usr/binUser ajest may run the following commands on localhost: (ALL : ALL) NOPASSWD: /usr/bin/whoami, /usr/bin/id[ajest@localhost ~]$ sudo iduid=0(root) gid=0(root) groups=0(root)[ajest@localhost ~]$ sudo ls /home/[sudo] password for ajest: ^C[ajest@localhost ~]$

CVE-2019-14287

sudoer 配置

如果有如下配置:

[root@localhost ~]# grep -n "^ajest" /etc/sudoers1:ajest ALL=(ALL, !root) /usr/bin/whoami, /usr/bin/id[root@localhost ~]#

漏洞觸發(fā)

[ajest@localhost ~]$ sudo -lMatching Defaults entries for ajest on localhost: !visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin/:/bin/:/usr/sbin/:/usr/binUser ajest may run the following commands on localhost: (ALL, !root) /usr/bin/whoami, /usr/bin/id[ajest@localhost ~]$ sudo -u AJEST iduid=1500(AJEST) gid=2000(class01) groups=2000(class01),2001(class02)[ajest@localhost ~]$ sudo -u root idSorry, user ajest is not allowed to execute '/bin/id' as root on localhost.localdomain.[ajest@localhost ~]$ sudo -u#1500 iduid=1500(AJEST) gid=2000(class01) groups=2000(class01),2001(class02)[ajest@localhost ~]$ sudo -u#0 idSorry, user ajest is not allowed to execute '/bin/id' as root on localhost.localdomain.[ajest@localhost ~]$ sudo -u#-1 iduid=0(root) gid=1000(ajest) groups=1000(ajest)[ajest@localhost ~]$

關(guān)鍵詞:權(quán)限,管理,用戶,安全

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉