- 配置文档归属
- 配置访问权限
- SUID附加权限
- 文档的ACL策略控制
- sudo命令提权控制
- 查找程序和文件
- grep提取文本
- 进程管控
1 配置文档归属
1.1 问题
本例要求理解文档的归属关系,并通过归属变更了解其重要性,相关说明如下。
首先新建测试用户lvbu、diaochan,然后完成下列归属测试操作。
1)检查用户lvbu的家目录的归属
2)以用户diaochan登录,尝试进入lvbu的家目录
3)把lvbu的家目录的属主更改为diaochan
4)以用户diaochan登录,再次尝试进入lvbu的家目录
5)以用户lvbu登录,结果是什么?
6)重新将lvbu的家目录的属主恢复为lvbu
1.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:准备测试账号
1)新建用户lvbu、diaochan
[root@svr223 ~]# useradd lvbu[root@svr223 ~]# useradd diaochan2)为用户lvbu、diaochan设置密码
[root@svr223 ~]# passwd lvbu更改用户 lvbu 的密码 。 passwd:所有的身份验证令牌已经成功更新。[root@svr223 ~]# passwd diaochan更改用户 diaochan 的密码 。 passwd:所有的身份验证令牌已经成功更新。步骤二:更改归属测试
1)检查用户lvbu的家目录的归属
[root@svr223 ~]# ls -ld ~lvbudrwx------.3lvbu lvbu787月2312:03 /home/lvbu2)以用户diaochan登录,尝试进入lvbu的家目录
[root@svr223 ~]# su - diaochan[diaochan@svr223 ~]$cd/home/lvbu -bash: cd: /home/lvbu: 权限不够 //进入失败[diaochan@svr223 ~]$exit登出3)把lvbu的家目录的属主更改为diaochan
[root@svr223 ~]# chown diaochan ~lvbu[root@svr223 ~]# ls -ld /home/lvbudrwx------.3diaochan lvbu787月2312:03 /home/lvbu4)以用户diaochan登录,再次尝试进入lvbu的家目录
[root@svr223 ~]# su - diaochan上一次登录:一7月2317:38:27 CST 2018pts/1 上[diaochan@svr223 ~]$cd/home/lvbu //成功进入[diaochan@svr223 lvbu]$exit登出5)以用户lvbu登录,结果是什么?
[root@svr223 ~]# su - lvbusu: 警告:无法更改到 /home/lvbu 目录: 权限不够 //有家难归 -bash: /home/lvbu/.bash_profile: 权限不够 -bash-4.2$exit登出-bash: /home/lvbu/.bash_logout: 权限不够
[root@svr223 ~]#
6)重新将lvbu的家目录的属主恢复为lvbu
[root@svr223 ~]# chown lvbu ~lvbu[root@svr223 ~]# ls -ld /home/lvbudrwx------.3lvbu lvbu787月2312:03 /home/lvbu2 配置访问权限
2.1 问题
本例要求理解目录的r、w、x权限,学会从命令行设置文档权限,相关说明如下。
首先,通过下列操作测试对目录的r、x权限:
1)修改 lvbu 的家目录属性,使其他人有读取、可执行权限
2)以用户 diaochan 登录,尝试 ls -A、cd到 lvbu 家目录
然后,通过下列操作测试对目录的w权限:
1)由 root 用户在 /home/lvbu/ 目录下新建 root.txt 文件
2)对比目录 /home/lvbu/ 和文件 /home/lvbu/root.txt 的归属及权限
3)以用户 lvbu 登录,尝试查看、修改、删除 root.txt 文件
2.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:测试对目录的r、x权限
1)修改 lvbu 的家目录属性,使其他人有读取、可执行权限
[root@svr223 ~]# chmod o+rx /home/lvbu[root@svr223 ~]# ls -ld /home/lvbudrwx---r-x.3lvbu lvbu787月2312:03 /home/lvbu2)以用户 diaochan 登录,尝试 ls -A、cd到 lvbu 家目录
[root@svr223 ~]# su - diaochan上一次登录:一7月2317:40:33 CST 2018pts/1 上[diaochan@svr223 ~]$ls-A/home/lvbu //成功列出资源 .bash_logout .bash_profile .bashrc .mozilla[diaochan@svr223 ~]$cd/home/lvbu //成功进入目录[diaochan@svr223 lvbu]$exit登出步骤二:测试对目录的w权限
1)由 root 用户在 /home/lvbu/ 目录下新建 root.txt 文件
[root@svr223 ~]# vim /home/lvbu/root.txtTop Secret.2)对比目录 /home/lvbu/ 和文件 /home/lvbu/root.txt 的归属及权限
[root@svr223 ~]# ls -ld /home/lvbu/ /home/lvbu/root.txtdrwx---r-x.3lvbu lvbu787月2312:03 /home/lvbu -rw-r--r--.1root root07月2317:49 /home/lvbu/root.txt3)以用户 lvbu 登录,尝试查看、修改、删除 root.txt 文件
[root@svr223 ~]# su - lvbu上一次登录:一7月2318:19:15 CST 2018pts/1 上[lvbu@svr223 ~]$cat/home/lvbu/root.txt //可以查看(对文件有r权限) Top Secret.[lvbu@svr223 ~]$vim/home/lvbu/root.txt Top Secret....."/home/lvbu/root.txt"[只读]1L, 12C //无法修改(对文件没有w权限)[lvbu@svr223 ~]$rm-rf/home/lvbu/root.txt //可以删除(对目录有rwx权限)[lvbu@svr223 ~]$ls/home/lvbu/root.txt //确认结果 ls: 无法访问/home/lvbu/root.txt: 没有那个文件或目录[lvbu@svr223 ~]$exit登出[root@svr223 ~]#3 SUID附加权限
3.1 问题
本例要求熟悉Linux系统中SUID附加权限的作用,理解可能带来的安全风险,相关说明如下。
首先,可以将程序/usr/bin/vim复制为/usr/bin/.vim,然后为.vim程序设置SUID权限并执行测试,验证普通用户使用管理员的SUID程序会带来什么风险。
1)将程序/usr/bin/vim复制为/usr/bin/.vim
2)以用户zhangsan登入,执行“.vim /etc/hosts”测试修改权限(不可以)
3)管理员为/usr/bin/.vim程序设置u+s特权
4)用户zhangsan再次执行“.vim /etc/hosts”测试修改权限(可以)
3.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:SUID权限测试
一些不该设置u+s权限的程序,如果被人恶意设置了,就可能给系统带来安全威胁。
1)将程序/usr/bin/vim复制为/usr/bin/.vim
根据openEuler 22.03的默认安全设置,用户新复制的文档不允许其他人使用。因此,在使用cp命令复制的时候可以添加选项-p,表示保持被复制文件的权限等属性,确保新文件仍然能够被普通用户使用。
[root@svr223 ~]# cp -p /usr/bin/vim /usr/bin/.vim //复制出.vim程序[root@svr223 ~]# ls -lh /usr/bin/.vim //检查文档权限(任何人可以x执行)-rwxr-xr-x1root root3.1M3月212022/usr/bin/.vim2)以用户zhangsan登入,执行“.vim /etc/hosts”测试修改权限(不可以)
对于普通用户zhangsan(如果没有此用户,请提前useradd zhangsan添加),可以直接调用.vim隐藏程序。
[zhangsan@svr223 ~]$ .vim /etc/hosts //使用.vim打开系统配置文件....8.8.8.8 dns.google //尝试添加一行内容 //因为没有权限,通过 :wq 会无法保存,可以执行 :q!放弃并退出[zhangsan@svr223 ~]$exit//退出zhangsan用户3)管理员为/usr/bin/.vim程序设置u+s特权
使用chmod命令,结合“u+s”表示为文档的属主设置Set UID附加权限标记。
[root@svr223 ~]# chmod u+s /usr/bin/.vim //配置u+s权限[root@svr223 ~]# ls -lh /usr/bin/.vim //检查设置后的权限结果-rwsr-xr-x1root root3.1M3月212022/usr/bin/.vim[root@svr223 ~]# su – zhangsan //切换到zhangsan用户4)用户zhangsan再次执行“.vim /etc/hosts”测试修改权限(可以)
[zhangsan@svr223 ~]$ .vim /etc/hosts //使用.vim打开系统配置文件....8.8.8.8 dns.google //尝试添加一行内容 //因为SUID的关系,获得了root的权限,通过 :wq 可以保存[zhangsan@svr223 ~]$cat/etc/hosts //确认修改结果127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain68.8.8.8 dns.google4 文档的ACL策略控制
4.1 问题
本例要求学会为Linux文档设置额外的ACL访问控制策略,主要使用getfacl、setfacl命令,相关说明如下。
1)新建目录/moon,属主、属组均为root,权限为rwxr-xr-x
2)新建用户账号zy01、zy02、zy03
3)为目录/moon设置ACL,允许用户zy01可读可写可执行
4)为目录/moon设置ACL,禁止zy02用户有任何权限
5)使用ls和getfacl查看/moon目录的权限,对比结果
6)分别测试zy01、zy02、zy03用户对目录/moon的rwx权限
4.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:新建目录/moon,属主、属组均为root,权限为rwxr-xr-x
[root@zbx ~]# mkdir -m u=rwx,go=rx /moon //新建测试目录[root@zbx ~]# ls -ld /moon/ //确认归属和权限drwxr-xr-x2root root409611月921:11 /moon/步骤二:新建用户账号zy01、zy02、zy03
创建3个测试用户,根据需要设置好密码(必要时,可以从SSH登录测试)。
[root@zbx ~]# useradd zy01 //新建用户账号[root@zbx ~]# useradd zy02[root@zbx ~]# useradd zy03[root@zbx ~]# passwd zy01 //快速设密123456更改用户 zy01 的密码 。 passwd:所有的身份验证令牌已经成功更新。[root@zbx ~]# passwd zy02更改用户 zy02 的密码 。 passwd:所有的身份验证令牌已经成功更新。[root@zbx ~]# passwd zy03更改用户 zy03 的密码 。 passwd:所有的身份验证令牌已经成功更新。步骤三:为目录/moon设置ACL,允许用户zy01可读可写可执行
使用setfacl命令配置策略时,增加权限可以用“rwx”或“rx”等方式直接表示。
[root@zbx ~]# getfacl /moon //确认之前的ACL# file: /moon# owner: root# group: rootuser::rwx group::r-x other::r-x[root@zbx ~]# setfacl -m u:zy01:rwx /moon/ //添加ACL,允许zy01读写可执行[root@zbx ~]# getfacl -p /moon //确认调整后的ACL# file: /moon# owner: root# group: rootuser::rwx user:zy01:rwx //多了一条用户zy01的策略 group::r-x mask::rwx other::r-x步骤四:为目录/moon设置ACL,禁止zy02用户有任何权限
使用setfacl命令配置策略时,去掉任何权限可以用“—”或“-”表示。
[root@zbx ~]# setfacl -m u:zy02:- /moon/ //阻止用户zy02访问[root@zbx ~]# getfacl -p /moon //确认调整后的ACL# file: /moon# owner: root# group: rootuser::rwx user:zy01:rwx user:zy02:--- //多了一条用户zy02的策略 group::r-x mask::rwx other::r-x步骤五:使用ls和getfacl查看/moon目录的权限,对比结果
使用ls -ld查看配置了ACL策略的目录权限,在权限字串后原来的“.”变成了“+”标记,但是无法看到具体的ACL细节。
[root@zbx ~]# ls -ld /moondrwxrwxr-x+2root root409611月921:11 /moon使用getfacl命令查看时,可以看到详细的ACL策略。
[root@zbx ~]# getfacl -p /moon/# file: /moon/# owner: root# group: rootuser::rwx user:zy01:rwx user:zy02:--- group::r-x mask::rwx other::r-x根据这个结果分析,针对目录/moon,用户zy01应该有rwx权限,用户zy02应该没有任何权限,而zy03算是其他人只有rx权限。
步骤六:分别测试zy01、zy02、zy03用户对目录/moon的rwx权限
当用户zy01登录时,可以执行查看目录内容(r)、在目录下创建/删除文件(w)、进入目录(x)等操作。
[root@zbx ~]# su - zy01 //切换为用户zy01登入....[zy01@zbx ~]$cd/moon/ //进入目录[zy01@zbx moon]$pwd//确认当前目录位置 /moon[zy01@zbx moon]$touchzy01.txt //在目录下创建文件[zy01@zbx moon]$ls-lh//列出当前目录下的内容 总用量0-rw-------1zy01 zy01011月921:32 zy01.txt[zy01@zbx ~]$exit//退出su切换 注销当用户zy02登录时,无法查看目录内容(r),也无法在目录下创建/删除文件(w),也无法进入目录(x),都会提示“没有权限”。
[root@zbx ~]# su - zy02 //切换为用户zy02登入....[zy02@zbx ~]$cd/moon/ -bash: cd: /moon/: 权限不够[zy02@zbx ~]$ls/moon/ ls: 无法打开目录'/moon/':权限不够[zy02@zbx ~]$touch/moon/zy02.txt touch: 无法创建'/moon/zy02.txt':权限不够[zy02@zbx ~]$exit//退出su切换 注销当用户zy03登录时,可以执行查看目录内容(r)、进入目录(x)操作,但是无法在目录下创建/删除文件(w)。
[root@zbx ~]# su - zy03 //切换为用户zy03登入....[zy03@zbx ~]$cd/moon/ //进入目录[zy03@zbx moon]$pwd//确认当前目录位置 /moon[zy03@zbx moon]$ls-lh//列出当前目录下的内容 总用量0-rw-------1zy01 zy01011月921:32 zy01.txt[zy03@zbx moon]$touchzy03.txt //尝试在目录下创建文件 touch: 无法创建'zy03.txt':权限不够[zy03@zbx ~]$exit//退出su切换 注销5 sudo命令提权控制
5.1 问题
本例要求掌握sudo提权控制的相关用法。
首先,要学会配置sudo授权:
1)允许用户zy通过sudo执行任何命令
其次,要熟悉通过sudo执行授权命令的方法:
1)切换为用户zy,查看自己的sudo权限
2)由用户zy通过sudo方式创建一个目录 /zydir,确认结果
5.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置sudo授权
执行visudo命令,会自动进入sudo授权配置界面,参考下列内容添加配置。
[root@svr223 ~]# visudo....zy ALL=ALL //允许用户zy通过sudo使用所有命令步骤二:使用sudo授权
1)切换为用户zy,查看自己的sudo权限
如果没有zy用户,注意要先添加zy用户,并设置好密码:
[root@svr223 ~]# useradd zy //添加用户zy[root@svr223 ~]# passwd zy //为用户设置密码....切换为zy用户:[root@svr223 ~]# su - zy[zy@svr223 ~]$ 查看用户自己的sudo授权:[zy@svr223 ~]$sudo-l[sudo]zy 的密码: //最近5分钟内第一次使用sudo,要求验证密码 匹配 %2$s上 %1$s的默认条目:!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, 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/bin,logfile=/var/log/sudo 用户 zy 可以在 svr223 上运行以下命令:(root)ALL[zy@svr223 ~]$2)由用户zy通过sudo方式创建一个目录 /zydir,确认结果
[zy@svr223 ~]$mkdir/zydir //正常使用,无权在 / 下创建子目录 权限 mkdir: 无法创建目录"/zydir":权限不够[zy@svr223 ~]$sudomkdir/zydir //sudo方式使用,成功在 / 下创建子目录[zy@svr223 ~]$ls-ld/zydir drwxr-xr-x.2root root64月2511:20 /zydir6 查找程序和文件
6.1 问题
本例要求掌握在系统中查找特定文件的方法,包括查找需要的符合某些条件的文件的位置,主要涉及find命令的基本用法。
查找文件时使用find命令,可以指定查找的目录范围,以及具体的查找条件。
1)列出/boot/目录下大小超过10M的文件
2)列出/var/log/目录下超过30天都没有改动过的文件
6.2 步骤
步骤一:查找文件
使用find命令可以在指定目录下查找想要的文件,具体找什么样的文件可通过条件表达式来指明。如果没有指定在哪个目录下查找,缺省表示当前目录;如果没有指定查找条件,缺省表示找出任何文件。
比如,可以在根目录下直接执行find命令(不带任何参数)列出系统中的所有文档。
[root@zbx ~]# cd / //切换到根目录[root@zbx /]# find //快速列出当前目录下所有文档../mnt ./srv ./sys ./sys/kernel ./sys/kernel/notes ./sys/kernel/mm ./sys/kernel/mm/page_idle ./sys/kernel/mm/page_idle/bitmap ./sys/kernel/mm/hugepages....1)列出/boot/目录下大小超过10M的文件
按容量大小查询可以使用-size来表示条件,跟上“+10M”表示超过10MB的,“-10M”表示小于10MB的。注意容量单位的大小写,大写的M表示MB,大写的G表示GB,小写的k表示KB。
[root@zbx ~]# find /boot/ -size +10M //按大小查找/boot/initramfs-5.10.0-60.18.0.50.oe2203.x86_64kdump.img /boot/initramfs-5.10.0-60.18.0.50.oe2203.x86_64.img[root@zbx ~]# ls -lh /boot/initramfs-* //抽查结果(看容量大小)-rw-------.1root root 28M10月1615:35 /boot/initramfs-5.10.0-60.18.0.50.oe2203.x86_64.img -rw-------.1root root 33M10月1615:37 /boot/initramfs-5.10.0-60.18.0.50.oe2203.x86_64kdump.img2)列出/var/log/目录下超过30天都没有改动过的文件
按修改时间查询可以使用-mtime来表示条件,跟上“+30”表示30天之前修改的,“-30”表示30天之内修改的。另外如果只想列出符合条件的文件(不包括目录),可以加上“-type f”来进行限制(两个条件都必须成立,省略了-a连接)。
[root@zbx ~]# find /var/log/ -type f -mtime +30 //按修改时间查找/var/log/README[root@zbx ~]# ls -lh /var/log/README //抽查结果(看修改时间)-rw-r--r--.1root root1.1K7月82021/var/log/README3)列出/usr/bin/目录下属主权限可读“r”权限的文件
按权限查询可以使用-perm来表示条件,跟上“-u=r”表示会检查文档的属主权限,只要具有r权限就算符合要求。
[root@zbx ~]# find /usr/bin/ -type f -perm -u=r //按类型和属主权限查找4)列出/目录下权限设置其他用户具有w权限的子目录
[root@zbx ~]# find / -type d -perm -o=w //按类型和属组权限查找7 grep提取文本
7.1 问题
本例要求掌握在文件内容中查找特定关键词以便快速定位需要修改的位置,主要是grep命令的基本用法。
首先,学会使用管道操作,方便组合多条命令来。
1)统计当前登录的用户数量
2)为现有用户student快速设置密码123456
使用grep过滤操作时,可以针对文件内容进行过滤,也可以针对命令行显示结果进行过滤。
1)列出系统中使用“/bin/bash”终端的用户信息
2)列出当前处理器是否支持“x86_64”
3)排除/etc/selinux/config文件内的空行、包含#的行,列出其他内容
7.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:利用管道组合多条命令
1)统计当前根目录下一共有多少个文件
执行“who”命令可以列出当前登录的用户,通过管道操作“|”交给后面的“wc -l”命令处理,wc命令是用来统计文本信息的(选项-l表示统计行数)。
[root@zbx ~]# who | wc -l2//当前主机登录了两个用户2)为现有用户student快速设置密码123456
执行“echo 123456”表示向屏幕显示123456,通过管道操作“|”交给后面的passwd改密命令处理。注意passwd命令默认不接收其他途径提供的密码,需要结合–stdin选项才能处理管道传过来的密码字串。
[root@zbx ~]# useradd student[root@zbx ~]# passwd student更改用户 student 的密码 。 passwd:所有的身份验证令牌已经成功更新。步骤二:grep过滤操作
1)列出系统中使用“/bin/bash”终端的用户信息
在Linux系统中,/etc/passwd文件记录了所有用户的基础信息 —— 每行对应一个用户,以冒号:分隔,分别记录了用户名、密码转存标记、UID、GID、全名、主目录、登录Shell程序。
对于正常可登录的Linux用户来说,他们的“登录Shell程序”通常是“/bin/bash”。因此,只需要使用grep命令,以“/bin/bash”作为查找条件,过滤出/etc/passwd文件中的行,就可以列出正常可登录的用户信息了(如果只关注用户名,只看第一列就行)。
[root@zbx ~]# grep "/bin/bash" /etc/passwdroot:x:0:0:root:/root:/bin/bash student:x:1000:1000::/home/student:/bin/bash2)列出当前处理器是否支持“x86_64”
使用lscpu命令可以列出CPU处理器信息,如果处理器支持“x86_64”,在输出结果中会包含“x86_64”(表示支持64位运算)。因为lscpu的输出信息实在是太多了,为了快速判断结果是否包含“x86_64”,就可以结合grep命令来进行过滤。
[root@zbx ~]# lscpu | grep "x86_64"架构: x86_643)排除/etc/selinux/config文件内的空行、包含#的行,列出其他内容
使用grep命令时,如果需要排除包含某个关键词的行,可以结合“-v”选项来取反。关键词“^”表示空行(开头、结尾”表示空行(开头^、结尾”表示空行(开头、结尾中间啥都没有)。
[root@zbx ~]# cat /etc/selinux/config #检查原始文件(有空行有注释)# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these three values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.SELINUXTYPE=targeted[root@zbx ~]# grep -v "#" /etc/selinux/config | grep -v "^$" #去空行去注释SELINUX=disabledSELINUXTYPE=targeted8 进程管控
8.1 问题
本例要求学会在Linux系统中查看及管理运行的进程,相关说明如下。
查看进程信息,可以使用top命令。
1)top查看进程的资源占用排名
针对占用资源较多的进程,可以使用pgrep查找、pkill杀死来进行控制。
1)执行“sleep 300&”在后台启动一个睡眠测试进程
2)pgrep找出包含“slee”的进程名称和PID值
3)强制杀死sleep进程
8.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:查看进程信息
1)top查看进程的资源占用排名
直接执行top可以查看当前主机中运行的进程的动态排名情况(间隔3秒刷新),默认根据CPU占用率进行排序,资源占用最高的排在最靠前。通过排名列表可以快速发现占用资源较高的进程信息。
[root@zbx ~]# toptop-19:24:26 up1:19,2users, load average:0.03,0.04,0.01Tasks:212total,2running,210sleeping,0stopped,0zombie %Cpu(s):1.3us,1.0sy,0.0ni,97.3id,0.0wa,0.3hi,0.0si,0.0st MiB Mem:1431.9total,148.6free,429.4used,853.9buff/cache MiB Swap:2076.0total,2075.7free,0.3used.557.2avail Mem PIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND965mysql200110134415074422180S1.310.30:37.27 mariadbd1154apache2001077324146325372S0.31.00:01.51 httpd3347root20022523243323528R0.30.30:00.03top1root200100696116368600S0.00.80:02.90 systemd2root200000S0.00.00:00.01 kthreadd3root0-20000I0.00.00:00.00 rcu_gp4root0-20000I0.00.00:00.00 rcu_par_gp6root0-20000I0.00.00:00.00 kworker/0:0H-events_high+8root0-20000I0.00.00:00.00 mm_percpu_wq9root200000S0.00.00:00.00 rcu_tasks_rude_10root200000S0.00.00:00.00 rcu_tasks_trace11root200000S0.00.00:00.35 ksoftirqd/012root200000R0.00.00:00.42 rcu_sched13root rt0000S0.00.00:00.01 migration/014root200000S0.00.00:00.00 cpuhp/016root200000S0.00.00:00.00 kdevtmpfs....#按q键退出在输出结果的开头,会展示当前系统时间、开机时长、在线用户数量、CPU负载情况(最近1分钟、5分钟、15分钟)、运行的任务信息(Tasks)、CPU占用情况(%Cpu)、内存占用情况(MiB Mem)、交换空间占用情况(MiB Swap)。
步骤二:查找及杀死进程
1)执行“sleep 300&”在后台启动一个睡眠测试进程
sleep命令可以启动一个睡眠进程(其实就是暂停,啥也不做),睡眠的时间由给定的参数确定,缺省的时间单位为秒。比如“sleep 5”表示睡眠5秒,命令执行后等待5秒会自动结束。
[root@zbx ~]# sleep 5 //占用终端5秒,然后自动结束[root@zbx ~]#这里sleep命令主要用作进程管理测试,为了方便在睡眠期间还能够继续执行其他命令,可以在命令行末尾添加一个“&”符号,表示把睡眠进程放在后台运行(不占用当前命令终端)。
[root@zbx ~]# sleep 300& //启动一个睡眠进程,放在后台运行[1]12174//提示此进程的PID(进程号)2)pgrep找出包含“slee”的进程名称和PID值
使用pgrep命令,可以根据进程名关键词来查询符合条件的进程,结合字母选项-l可以一起列出对应的进程名称(否则只列出进程号)。
[root@zbx ~]# pgrep -l slee //查找名称包括“slee”的进程名称和PID值12174sleep3)强制杀死sleep进程
使用pkill命令,可以根据进程名关键词来杀死符合条件的进程,结合数字选项-9表示发送“强制杀死”的终止指令。
[root@zbx ~]# pkill -9 slee //杀死名称包括“slee”的进程[1]+ 已杀死sleep300[root@zbx ~]# pgrep -l slee //再次查询已无结果[root@zbx ~]#