Linux基础之病毒编写

news/2024/12/5 18:00:10/

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。

感谢泷羽sec 团队的教学
视频地址:linux基础之病毒编写(完结)_哔哩哔哩_bilibili

今天的主题是Linux目录介绍,一些基本命令使用以及资源耗尽病毒的编写。

一、Linux目录结构 

Linux 目录结构概述:

  • /bin: 存放二进制可执行文件和命令,特别重要,不能删除。
  • /boot: 启动系统所需文件,特别重要,不能删除。
  • /dev: 设备文件目录,特别重要,不能删除。
  • /etc: 配置文件目录,特别重要,不能删除。
  • /home: 普通用户的家目录。
  • /lib: 32位库文件目录,特别重要,不能删除。
  • /lib64: 64位库文件目录,特别重要,不能删除。
  • /media: 用于挂载多媒体设备。
  • /mnt: 用于临时挂载文件系统(如光盘和U盘)。
  • /opt: 可选的软件包安装目录。
  • /proc: 虚拟文件系统,提供系统进程信息,特别重要,不能删除。
  • /root: root用户的家目录,特别重要,不能删除。
  • /run: 系统运行时产生的临时文件。
  • /sbin: 超级用户专用命令目录,特别重要,不能删除。
  • /srv: 服务数据目录。
  • /sys: 系统信息目录,特别重要,不能删除。
  • /tmp: 临时文件存放目录。
  • /usr: 用户级程序和数据目录,特别重要,不能删除。
  • /var: 存放可变文件(如日志文件),特别重要,不能删除。
  • /lost+found :用于存放文件系统检查时恢复的文件碎片。

二、基本命令

cd 
  • 作用: 切换到用户的主目录。
  • 示例:cd /home/tom

ls
  • -l: 详细信息列表。
  • -a: 显示所有文件,包括隐藏文件。
  • -h: 以可读的格式显示文件大小。
  • 示例: ls -lah

pwd 
  • 作用: 显示当前目录的完整路径。
  • 示例: pwd

clear
  • 作用: 清空终端屏幕。
  • 示例: clear

vim
  • 作用: 打开文件进行编辑。
  • 示例: vim file.txt

cat
  • -n: 显示行号。
  • 示例: cat -n anaconda-ks.cfg

tail
  • -n num: 显示最后的 num 行。
  • -f: 实时跟踪文件更新。
  • 示例: tail -n 10 anaconda-ks.cfg      #显示文件最后10行

head
  • -n num: 显示前 num 行。
  • 示例: head -n 5 anaconda-ks.cfg    #显示文件前5行

more
  • 作用: 分屏显示文件内容。
  • 示例: more anaconda-ks.cfg

chown
  • owner:group: 设置文件的所有者和组。
  • 示例: chown tom:root new.txt

useradd
  • -m: 创建用户的主目录。
  • -s: 指定用户的登录 shell。
  • 示例: useradd -m -s /bin/bash gg

adduser
  • 通常是 useradd 的交互式版本。
  • 示例: adduser GGB

su
  • -: 切换用户并加载其环境。
  • 示例: su - tom

userdel
  • -r: 删除用户的同时删除其主目录。
  • 示例: userdel -r tom

passwd
  • 作用: 修改当前或指定用户的密码。
  • 示例: passwd root

sudo
  • 作用: 以超级用户身份执行命令。
  • 示例: sudo yum update    #检查所有已安装的软件包,并将它们更新到最新可用的版本。

三、 Linux权限详解

权限位

权限用三个字符表示:

  • r (读): 值为 4
  • w (写): 值为 2
  • x (执行): 值为 1
  • - (无权限): 值为 0
权限组合

权限组合通过加和值确定:

  • 0: ---
  • 1: --x
  • 2: -w-
  • 3: -wx
  • 4: r--
  • 5: r-x
  • 6: rw-
  • 7: rwx
权限结构

权限分为三组:

  • User (用户)
  • Group (组)
  • Other (其他人)

例如:rwxr-xr-x

  • 用户 (User): rwx(读写执行)
  • 组 (Group): r-x (读执行)
  • 其他人 (Other): r-x (读执行)

改变权限

使用 chmod 命令修改权限:

  • 数字方式: chmod 755 0708.txt           #给文件0708.txt权限提升至最高

    • 7 = rwx (用户)
    • 7 = rwx (组)
    • 7 = rwx (其他人)
  • 符号方式: chmod ugo-wx 0708.txt      #删除0708.txt写、执行权限

    • u (用户), g (组), o (其他人)
    • + 添加权限, - 删除权限

用户与组
  • root 用户: 最高权限,能够执行所有操作。
  • 普通用户: 受限于分配的权限。
  • 用户组 (users): 共享文件和权限的用户集合。

四、vim编辑器详解

基本操作
  • 打开文件: vim filename
  • 进入编辑模式: 按 i(插入模式)
常用模式
  • 普通模式: 默认模式,用于导航和操作。
  • 插入模式: 按 i 进入,可编辑文本。
  • 命令模式: 按 : 进入,用于执行命令。
常用命令
  • 保存并退出: :wq
  • 仅保存: :w
  • 仅退出: :q
  • 强制退出: :q!
导航
  • 移动光标: 使用方向键或 h(左),j(下),k(上),l(右)
  • 跳转到行首: 0
  • 跳转到行尾: $
  • 跳转到文件开头: gg
  • 跳转到文件结尾: G
编辑
  • 删除字符: x
  • 删除整行: dd
  • 复制(拷贝)行: yy
  • 粘贴: p
  • 撤销: u
  • 重做: Ctrl + r
查找与替换
  • 查找: /pattern 然后按 Enter
  • 下一个匹配: n
  • 上一个匹配: N
  • 替换: :s/old/new/g(当前行替换)
  • 全局替换: :%s/old/new/g
实用技巧
  • 行号显示: :set number
  • 语法高亮: :syntax on
  • 自动缩进: :set autoindent
  • 按 : 进入命令模式使用。

五、资源耗尽病毒分析

该脚本通过notify-send发送无限弹窗通知,从而导致资源消耗的效果。

  1. 编写脚本:将以下代码保存到tc.sh文件中。

    #!/bin/bash 
    while true 
    do notify-send "无限弹窗" "这是一个无限循环弹窗" sleep 2 
    done说明:
    #!/bin/bash:指定使用 Bash 作为解释器。
    while true:创建一个无限循环,true 始终为真,因此循环不会停止,除非手动终止。
    notify-send:这是一个 Linux 下的桌面通知命令,通常用于显示桌面通知。它的第一个参数是通知的标题,第二个参数是通知的内容。
    sleep 2:让脚本每 2 秒暂停一次。
  2. 设置权限:使用以下命令赋予执行权限。

    chmod +x tc.sh
  3. 运行脚本:使用以下命令运行脚本。

    ./tc.sh

 改进

 设置一个计时器,运行 10 次后自动停止。

#!/bin/bash
count=0
while [ $count -lt 10 ]
donotify-send "有限弹窗" "这是一个有限次数的循环弹窗"sleep 2count=$((count+1))
done解释:
#!/bin/bash:这行指定了脚本使用的解释器是 Bash。
count=0:初始化一个计数器 count,初始值为 0。
while [ $count -lt 10 ] do:开始一个 while 循环,条件是 count 小于 10。
notify-send :使用 notify-send 命令发送一个弹窗通知,标题为“有限弹窗”,内容为“这是一个有限次数的循环弹窗”。
count=$((count+1)):将 count 的值增加 1。
done:结束while循环。

http://www.ppmy.cn/news/1546565.html

相关文章

MongoDB——服务端连接及查询

一、登录 登录命令:mongo localhost/db -u username -p。其中db为要登录的db,username为账户,然后输入密码回车: 登录成功 二、数据库操作 1、创建db:use testDB。 2、查看有哪些db:show dbs。 3、查看…

【React】默认导出和具名导出

这是 JavaScript 里两个主要用来导出值的方式:默认导出和具名导出。一个文件里有且仅有一个 默认导出,但是可以有任意多个具名导出。 1.默认导出: 导出语句 export default function Button() {}导入语句 import Button from ./Button.js;…

ACIS中wire与edge的区别是什么

在ACIS中,Wire表示没有附着在面上、连接在一起的有向边的集合,可以表示闭合曲线或一些理想化的对象;而Edge表示由两个顶点连接而成、具有方向属性的直线段或圆弧,用于定义曲线的拓扑结构。 • Wire(线框)&a…

MongoDB 详解:深入理解与探索

在当今的数据库领域,MongoDB 以其独特的特性和强大的功能,成为了众多开发者和企业的首选。本文将对 MongoDB 进行详细的介绍,包括其特点、应用场景、流程图以及源码分析。 一、MongoDB 概述 MongoDB 是一个基于分布式文件存储的开源数据库系…

传输协议设计与牧村摆动(Makimoto‘s Wave)

有一条活鱼和一条死鱼,你准备怎么做,你会将活鱼红烧或将死鱼清蒸吗?好的食材只需要最简单的烹饪,不好的食材才需要花活儿。 我此前的文字几乎都在阐述一个观点,广域网就是那条死鱼,数据中心则是那条活鱼。…

【报错记录】Steam迁移(移动)游戏报:移动以下应用的内容失败:XXX: 磁盘写入错误

前言 由于黑神话悟空,导致我的2TB的SSD系统盘快满了,我又买了一块4TB的SSD用来存放游戏,我就打算把之前C盘里的游戏移动到D盘,结果Steam移动游戏居然报错了,报的还是“磁盘写入错误”,如下图所示&#xff…

Unity3D UI 双击和长按

Unity3D 实现 UI 元素双击和长按功能。 UI 双击和长按 上一篇文章实现了拖拽接口,这篇文章来实现 UI 的双击和长按。 双击 创建脚本 UIDoubleClick.cs,创建一个 Image,并把脚本挂载到它身上。 在脚本中,继承 IPointerClickHa…

中安OCR电子行驶证、驾驶证识别,助力便捷出行与智慧交通

随着数字化技术在各行各业的深入应用,交通管理领域也迈入了新的时代。OCR电子行驶证和电子驾驶证的推出,不仅提升了车辆及驾驶证件管理的效率,更大大方便了车主出行。电子证件的普及,使得交通管理从“实体化”逐渐走向“数字化”&…