时间:2023-06-26 10:54:01 | 来源:网站运营
时间:2023-06-26 10:54:01 来源:网站运营
[Linux 安全运维] 第三章 Linux 用户以及权限管理:命令速查:/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 不创建家目录usermod 更新用户信息userdel 删除用户 -r 删除用户时,同时删除家目录passwd 修改用户密码 -S 查看用户密码状态 -l 锁定用户 -u 解锁用户chage 修改密码过期时间 -M 修改密码最长有效期为多少天ln -s /tmp/ajest.txt /root/Desktop/ajest.txt 将/tmp/ajest.txt 文件创建快捷方式到/root/Desktop/ajest.txtchmod 修改文件或者目录的权限 u-r 撤销读权限 u-w 撤销写权限 o=--- 其他用户权限全部撤销 o-r 撤销其他用户列出目录的权限 o=rwx 修改其他用户的权限 g=--- 修改所属组的权限chmod 1777 /tmp/ 对目录设置粘滞位chmod 2777 /tmp/rootDir 对目录设置sgid 标识chown root /tmp/ajestDir/ajest.txt 修改文件所属者为rootls -ld /tmp/rootDir/ 查看目录的权限sudo 以其他用户身份执行命令su 切换用户
/etc/passwd
文件中存储了所有用户信息。:
为分隔符,一共7 段内容。root:x:0:0:root:/root:/bin/bash[--] - - - [--] [---] [--------] | | | | | | | | | | | | | +-> 7. Login shell | | | | | +---------> 6. Home directory | | | | +---------------> 5. GECOS | | | +-------------------> 4. GID | | +---------------------> 3. UID | +-----------------------> 2. Password +---------------------------> 1. Username
字段序号 | 示例 | 解释 | 说明 |
---|---|---|---|
1 | root | 用户名 | |
2 | x | 密码占位符 | 用户的密码 x 代表有密码 无内容,用户登录系统无需密码 |
3 | 0 | UID | 当前用户的身份标识 0 就是超级管理员 |
4 | 0 | GID | 当前用户的基本组ID |
5 | root | 用户的身份信息 大名 | 现已废弃 |
6 | /root | 用户家目录 | 超管:/root 普通用户:/home/用户名 |
7 | /bin/bash | 用户登录系统后 (默认)命令解释器 | /sbin/nologin 不允许登录系统 /bin/sh |
[root@localhost ~]# id rootuid=0(root) gid=0(root) groups=0(root)[root@localhost ~]#
用户分类 | UID |
---|---|
普通用户 | > 1000 |
程序用户 | 1 - 1000 |
超级管理员用户 | 0 |
/etc/shadow
记录了系统中用户的密码信息。:
作为分隔符,一共9 段内容。root:$6$.IOzaCZc$f.u0fVe5QZb0mhm6UZvjcfa.un7vRXw8frfyoURLrOHmo7JsTI40a/iaQuHm/uCFqRuljfAyBCJDvOk7ZsCEM.:18765:0:99999:7:::passwd rootroot:$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/:18766:0:99999:7:::
字段序号 | 示例 | 含义 | 说明 |
---|---|---|---|
1 | root | 用户名 | |
2 | $6$T07ge8 | 密码密文 | sha-512 HASH 散列算法 salt 值 加密后的密文 |
3 | 18766 | 密码修改时间 | 距离1970 年1 月1 日 密码最近一次的修改时间(天) |
4 | 0 | 密码最短有效期 | 在最短有效期之内不能修改密码 3:三天之内不可以修改自己的密码 root 用户不受此限制 |
5 | 99999 | 密码最长有效期 | 密码可以使用多长时间 建议设置成90 天 |
6 | 7 | 密码过期时间 | 密码过期前7 天会有警告提示 |
7 | 密码的不活跃期 | 过了密码有效期没有修改密码, 处于不活跃期,仍然可以登录系统。 | |
8 | 账户失效时间 | 密码距离1970 年1 月1 日的失效时间(天) | |
9 | 未分配功能 |
| 正常登录系统 | 仍然可以登录系统 |0 用户不能修改密码 3 用户可以修改密码 83 提示修改密码 90 登录 密码锁定|---------------------|------------------|--------------|---------|-------------->^ ^ ^ ^ ^密码修改时间 密码最短有效期 密码过期时间 密码最长有效期 密码不活跃期
$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/$id$salt$encrypted$加密方式$盐值(随机的)$密码密文
密码密文加密方式:man crypt
shadow 文件爆破原理:[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
保存了组信息。:
作为分隔符,一共4 段内容。ajest:x:1000:ajest
字段数 | 示例 | 含义 | 说明 |
---|---|---|---|
1 | ajest | 组名 | 用户组的名称,由字母或数字构成。 |
2 | x | 密码 | x 是密码标识, 组密码默认保存在 /etc/gshadow 文件中。 |
3 | 1000 | GID | Group ID |
4 | ajest | 群组用户 |
[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 ~]#
[root@localhost ~]# groupmod class01 -g 2000[root@localhost ~]# tail -1 /etc/groupclass01:x:2000:[root@localhost ~]#
[root@localhost ~]# groupdel class01[root@localhost ~]#
[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 ~]#
由以上命令结果可知,在创建tom 用户时,没有指定基本组,Linux 创建了一个名为tom 的组。可以通过查看日志,印证观察到的结果。[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 ~]#
[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 ~]#
[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 ~]#
[root@localhost ~]# passwd -S AJESTAJEST LK 2023-02-23 0 99999 7 -1 (Password locked.)[root@localhost ~]#
由以上信息可知有AJEST 用户,用户信息如下:状态值 | 说明 |
---|---|
AJEST | 用户名 |
LK | 密码状态: LK,密码锁定 NP,没有密码 * PS,有可用密码 |
2023-02-23 | 创建时间 密码最近一次修改时间 |
0 | 最短有效期 |
99999 | 最长有效期 |
7 | 警告时间: * 密码过期前7 天警告 |
-1 | 失效时间: * -1 表示没有失效时间 |
passwd -d AJEST 删除AJEST 用户密码
[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 ~]#
ls -lh
命令查看文件或目录的权限。Linux 权限管理,包括调整文件或目录的权限。[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
命令结果中,每一行以空格为分隔符分为9 个字段(列)。字段数 | 例子 | 说明 |
---|---|---|
1 | drwxr-xr-x. | 文件或目录权限 |
2 | 2 | 如果文件类型是文件,表示文件的节点数 如果文件类型是目录,表示子目录的个数 |
3 | root | 所有者的名字 |
4 | root | 所有组的名字 |
5 | 137 | 文件大小 注意:不是目录的大小。 |
6 7 8 | Feb 23 10:25 | 文件最后一次修改时间 |
9 | Desktop | 文件或者目录的名字 |
d rwx r-x r-x .
字段数 | 示例 | 含义 | 说明 |
---|---|---|---|
1 | d | 文件类型 | - 文件 d 目录 l 符号链接 c 字符型设备 b 块设备 |
2 | rwx | 所有者权限 | u 所有者 |
3 | r-x | 所属组的权限 | g 所属组 |
4 | r-x | 其他用户的权限 | o 其他用户 |
5 | . |
权限 | 文件 | 目录 |
---|---|---|
r | 读取文件内容 | 列出目录内容 |
w | 修改文件内容 | 创建、删除目录中的文件 |
x | 执行程序或脚本 | 可以进入该目录 |
[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 ~]$
r = 4
;w = 2
;x = 1
。权限位 | 2 进制 | 8 进制 |
---|---|---|
--- | 000 | 0 |
--x | 001 | 1 |
-w- | 010 | 2 |
-wx | 011 | 3 |
r-- | 100 | 4 |
r-x | 101 | 5 |
rw- | 110 | 6 |
rwx | 111 | 7 |
chmod 对象 运算符号 权限 文件或者目录
权限运算说明:对象 | 运算符号 | 权限 |
---|---|---|
u g o a | + - = | r w x t s |
[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 ~]$
测试写权限:[ajest@localhost ~]$ echo "can i do it?" >> /tmp/ajest.txt [ajest@localhost ~]$
撤销写权限:[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 ~]#
权限从左向右匹配,先匹配,先生效。
[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,并输入内容“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,内容为“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]$
发现操作无法完成,报错信息为权限不允许,查看目录权限可知,其他用户对该目录没有写权限,也就是说,其他用户不能在该目录中,创建、删除文件。[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 目录权限,发现其他用户对该目录权限为0,没有执行权限,即其他用户不能进入该目录。[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 ~]$
chown 修改后的所属者 目标文件或者目录
常用命令选项:[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 追加内容“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 ~]$
由以上命令结果可知,即使将文件/tmp/ajestdir/ajest.txt 的所有者修改为root,ajest 用户依然可以向该文件中追加内容,这是为什么呢?注意到,对该文件拥有写权限的,除了所有者,还有所属组,然而ajest 用户在所属组ajest 中,所以ajest 用依然对该文件有写权限。[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 ~]$
[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/ 的粘滞位权限,切换用户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...
[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 参数设置sgid 特殊权限位。[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 ~]#
[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 ~]#
调整目录/tmp/rootdir/ 权限,并创建文件/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 提权:[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 ~]$
[root@localhost ~]# grep -n "^root" /etc/sudoers92:root ALL=(ALL) ALL[root@localhost ~]#
配置文件sudoers 关于权限的配置,大概分为5 个字段,具体含义如下:示例 | 字段 | 含义 |
---|---|---|
root | 1 | 授权用户| 组 |
ALL | 2 | 主机 |
(ALL:ALL) | 3 | 用户:组 授权用户可以以此用户身份特权执行命令。 |
NOPASSWD: | 4 | 是否需要输入密码验证 |
ALL | 5 | 命令1,命令2,... |
[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 ~]$
[root@localhost ~]# grep -n "^ajest" /etc/sudoers1:ajest ALL=(ALL, !root) /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, !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 ~]$
关键词:权限,管理,用户,安全