**免责声明**学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。B站地址:泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频
一:openssl
openssl是一个开源的加密工具包,提供了各种加密,解密,签名,验证等功能
passwd 表示这个命令用于处理处理密码的操作
-1:指定使用“MD5”加密算法
-5:表示使用了”SHA-256“哈希算法,SHA-256是一种更安全的加密算法,他生长的哈希值长度为256位,没次对相同的密码进行SHA-256加密时,由于加密过程中通常会引入随机因素,所以每次生成的密文都是不一样的,这样增加了密码的安全性,及时攻击者获得了密文,也很难通过逆向计算得到原始密码
文件管理
创建空文件
touch newfile #创建空文件
rm new #删除文件
mkdir demo #新建目录
rmdir demo #删除空目录,非空不行
mv file file.txt #重命名文件
mv file.txt demmo1 #移动文件
cp file.txt file1.txt #拷贝文件
ln -s original.txt symilnk1.txt #软连接
ln ~/offsec.txt hardlink.txt #硬连接
软硬链接的区别:
本质区别:
硬连接:同一个人文件,多个名称,共享一个inode信息
软连接:不同的文件,指向另一个文件的路径
可用性:
硬连接:只能在同一个文件系统中使用,不支持跨文件系统
软连接:可以跨文件系统和操作系统
支持的对象:
硬连接:不支持对目录的创建,只能对为文件创建
软连接:可以对文件和目录创建
删除的影响:
硬连接:删除其中一个硬连接不会影响其他硬连接,只有当所有硬连接都被删除时,原始文件才会被删除
软连接:删除软连接不会影响原始文件,但是原始文件被删除,软连接就会失效
创建方式:
硬连接:使用 ln 命令创建
软连接:使用 ln -s 命令创建,需要指定原始文件的路径
软连接常用于方便管理
例如:将复杂路径的文件连接到简单路径下或者解决文件系统不足的问题
硬连接则主要用于防止误删除文件
搜索文件命令
which
echo $PATH
locate(local.db)
sudo updatedb
locate whoami.exe
find ~ -mtime 2 -ls | sort -k9 -k10 | more
find . -type f -iname '* .sh' -mmin 30 -ls
find . -name '* .svn' -exec rm -rf {} \;
find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null
which:
作用是查找命令的可执行文件路径
如:如果你想知道“ls”命令在系统的具体位置,”which ls“
echo $PATH
echo 是用于输出内容的命令
PATH 所列出的目录中依次查找该命令的可执行文件
locate(locate.db)
locate 用于快速查找文件,它通过查询一个预先构建的数据库来实现
sudo 用于以管理员权限执行命令的前缀
update 用于更新 “locate”命令所使用的文件数据库,这个操作可能需要一些时间,因为他会扫描整个文件系统并将文件信息添加到数据库中
locate whoami.txt 使用“locate”命令查找问“whoami.exe”的文件在系统中的位置,如果系统中有这个文件,该命令就会输出其路径
find 表示在用户的主目录(~代表主目录)下查找
-mtime 2 表示查找在两天内被修改的文件
-ls 用于以长列表的形式显示找的文件信息
sort -k9 -k10 是按照第九列和第十列的内容对文件信息进行排序
| 是管道符号,将前一个命令的输出作为后一个命令的输入
more 用于分页查看
find. 在当前目录下查找
-type f 表示查找类型位普通文件
-name ‘*.sh’ 查找文件名以.sh 结尾的文件 这里的空格可能会岛主不准确匹配 一般通配符应该紧贴在前面的字符后门“*sh”
--mmin -30 表示查找30分钟内被修改的文件
-name ‘.svn’查找名为“.svn”的文件或目录
-exec -rm -rf {} ; 表示对找到的每个结果执行“rm -rf”命令,即删除找到的文件或目录
-user root 表示查找所有者为root用户的文件
-perm -o=w 表示查找其他用户有写权限的文件
-type f 表示查找类型为普通文件
-name ‘*.sh’ 查找文件名以 .sh 结尾的文件
2>/dev/null/ 将错误输出重定向到 /dev/null 即不显示错误信息
用户账号数据库
/etc/passwd
/etc/shadow
组账号
cat /etc/shadow
禁用账号
sudo passwd -l username
chage -E 1990-01-01 kali
passwd -S username
一.用户账号数据库相关文件
/etc/passwd
这是一个重要的系统文件,存储了系统中用户账号的基本信息
每一行代表应该用户,包含:用户名,用户id,密码占位符,用户组id,用户描述信息,用户主目录,用户默认,shell等字段
/etc/shadow
这个文件也与用户账户相关,组要存储用户密码以及密码的一些属性,如密码的最后一次修改时间,密码最短使用期限,这个具有足够的权限的用户(root)才能读取这个文件,以提高密码的安全性
二.组账号相关命令
etc/group 查看用户账号信息的同时,也可以间接了解用户所属的组信息,因为其中包含了用户组id
三.禁用账号相关命令
sudo 表示以管理员执行命令
passwd 用于管理用户命令的命令
-l 选项用于锁定用户账号,当前执行这个命令后,指定的“username(name)”用户账号被锁定,无法登录系统
chage 用于修改用户密码过期信息
-E 选项后面跟着一个日期,表示设置用户账号的过期时间,如 kali 用户设置过期时间为1990-01-01 ,这个日期过后,kali这个账号将无法使用,除非重新设置过期时间或进行其他管理操作
文件系统权限
始终记住一句话:在Linux中系统中一切皆是文件
几乎所有的资源都被抽象为文件,包括硬件设备(硬盘。网卡),进程间通信,网络连接等,这种设计理念使得各种资源的管理可以通过统一的文件操作方式来进行,大大的简化了系统的架构和管理
查看权限
ls -al /etc/passwd
更改文件所有者
chown root file
修改文件权限
sudo chmod u=rwx,g+rw,o-r hardlink.txt
sudo chmod u+x,g+w,o-r hardlink.txt
chmod 400 <file>
查看权限
ls 列出目录内容
-l 选项以长格式显示文件信息,包括文件的权限,所有者,所属组,文件大小,修改时间等详细信息
-a 显示包括隐藏文件
/etc/passwd 要查看的路经,这个文件存储了用户账号的基本信息,使用这个目录看一查看到这个文件的权限设置,所有者,所属组等
更改文件所有者
chown 是改变文件所有者的命令
root 是新的所有者用户名,表示将文件的所有者变为“root”用户
file 是要更改所有者的文件名称,执行这个命令后,文件的所有者将变为“root”用户
修改文件权限
sudo 以管理员执行命令
sudo chmod u=rwx,g+rw,,o-r file
chmod 改变文件权限命令
u=rwx 表示文件所有者(user)具有读(r),写(w),执行(x)权限
g+rw 表示文件内所属组(group)增加读(r),写(w)权限
o-r表示其他用户(other)去除读(r)权限
file 是要修改权限的名称
sudo chmod u+x,g+w,o-r file
u+x表示给文件所有者增加执行权限
g+w表示给文件所属组增加写的权限
o-r表示去除去其他用户的读取权限
file是目标文件
chmod 400 <file>
chmod 命令直接以数字方式设置温嘉你权限
400是权限的数字表示,其中第一位数字“4 ”表示文件所有者的权限
(r)代表读权限,相对应的数字是“4”
后两位数子“00”
分别表示文件所属组和其他用户没有任何权限
系统日志
#系统日志 ls -l /var/log
#认证信息日志 sudo tail -3 /var/logh/auth.log
#二进制日志 who/var/log/wtmp | tail -5 dmesg
#systemd日志 journalctl
一:系统日志
ls 列出目录内容
-l选项以长格式显示文件和目录的详细信息
/var/log是系统日志文件所在的目录
二:认证信息日志相关命令
sudo 以管理员权限执行命令
tail 用于查看文件末尾部分
-3 显示文件最后内容三行
/var/log/auth.log 是存储系统认证信息的日志文件,包括用户登录,认证失败等,执行这个命令可以查看最近的三条认证相关日志记录
三:二进制日志相关命令
who 显示当前用户登录的用户信息
/var/log/wtmp 是一个二进制文件,记录了系统的登录和注销记录
|管道符,将前一道命令的输入作为后一道命令的输出
tail -5 显示最后5行内容,执行这个命令卡伊查看最近5次登录和注销记录
四:dmesg
dmesg 用于显示内核环形缓冲区中的信息,包括系统启动时的硬件检测信息,内核模块加载信息,设备驱动的初始化信息等,它可以帮助用户了解系统的硬件状态和内核的运行情况
五:systemd日志相关记录
journalctl:这是一个用于查看和管理sysytemd时Linux系统的初始化和服务管理器,他会记录和服务的启动,运行和错误信息等日志, journalctl可以根据不同的参数来筛选,查看特定时间段,特定服务或优先级的日志记录
内存管理
内存使用量#free -m
磁盘使用量#df -hT
文件或目录大小#sudo du./* -hsc
查看硬盘分区#sudo fdisk -l
挂载分区#sudo mount /dev/sdb1/mnt/usb
一:内存使用量
free 用于显示系统内存的使用情况
-m 选项表示以兆字节(mb)为单位显示内存信息,执行这个命令之后,会显示系统的踪内存,已使用内存,可用内存,缓冲内存和缓存内存等信息,帮助用户了解系统当前的内存使用状态
二:磁盘使用量
df 用于显示磁盘空间使用情况
-h 表示以人类可读的格式(mb,kb,gb)等显示空间的大小
-T 显示文件系统类型,执行这个命令可以查看各个磁盘分区的总大小,已使用,可用空间以及文件系统类型等信息
三:文件或目录大小
sudo 表示以管理员权限执行命令
du用于统计文件或目录的磁盘使用空间
./* 表示当前目录下的所有文件和目录
-h 以人类可读形式显示
-s 表示汇总显示每个参数的总大小
-c 表示在最后显示总计,执行这个命令可以查看当前目录下每个文件和目录的小小,最后显示总计大小
四:查看硬盘分区
sudo 以管理员权限执行命令
fdisk 他这一个磁盘分区根据
-l 表示列出系统中所有磁盘分区信息,包括磁盘的大小,分区编号,起始和结束扇区等,它可以帮助用户了解系统硬盘的分区情况
五:挂载分区
sudo mount /dev/sdb1/mnt/usb
sudo 以管理员权限执行
mount 用于将一个文件系统挂载到指定的目录
/dev/sdb1 是要挂载的磁盘分区设备路径
/mnt/usb 是挂载点,即要将分区挂载到的目录,执行这条命令后,系统可以访问该分区中的文件和目录,就像访问本地文件系统中的其他目录一样
基本网络枚举
ifconfig
ip addr
sudo ifdown eth0
sudo ifup eth0
网络配置
/etc/network/interfaces
Networkmanager
一:基本网络工具
ifconfig:
是一个用于配置和显示网络接口信息的命令行工具,它可以显示网络接口的IP地址,子网掩码,mac地址等信息,还可以用于启动,停止或配置网络接口
IP addr
也是用于查看和管理网络接口的命令,他提供了比ifconfig更详细和灵活的网络接口信息显示,包括接口的状态,IP地址,子网掩码,广播地址等
sudo ifdown eth0
sudo表示以管理员权限执行命令
ifdown用于关闭指定的网络接口
eth0是网络接口名称,这里表示关闭关闭名为“eth0”的网络接口
sudo ifup eth0
ifup是指定启动指定的网络接口
eth0是网络接口名称,这里表示开启名为“eth0”的网络接口
二,网络配置
/etc/network/interfaces
这是一个系统文件,用于配置网络接口的静态IP地址,子网掩码,网关等信息
在一些Linux发行版中,通过编辑这个可以可以实现网络接口的手动配置
Networkmanager
是一个动态网络控制和配置守护进程
它可以自动管理网络连接,包括有线网络,无线网络和VPN连接等
Networkmanager提供了图形化和命令行工具配置和管理网络,使得网络配置更加方便和灵活,它可以自动检测网络变化,并根据自动连接到可用的网络
网络连接
netstat -natup
ss -natup
arp -en
route
iproute
sudo ip route add 10.13.37.0/24 dev eth1
traceroute 域名&&网址
一:网络连接状态查看工具
netstat -antup
netstat #是用于显示网络连接,路由表,接口统计等信息
-a #显示所有的连接和监听端口
-n #表示已数字形式显示地址和端口号,避免进行域名解析
-t #显示tcp连接
-u #显示udp连接
-p #显示与连接相关进程ID和程序名称,执行这个命令可以查看当前的网络连接状态,包括连接的协议,本地地址和端口,远程地址和端口等信息
ss -natup
ss #是另一个用于显示网络套接子状态,他比netstat更快更高效
选项更netstat像似
二:二层地址查看工具
arp -en
arp #是地址解析协议
-e #以详细格式显示ARP缓存表
-n #以数字形式显示IP地址,避免进行域名解析,执行这条命令可以查看arp缓存表,其中包含了IP地址和对应的mac地址映射关系,用于在局域网中进行二层地址解析
三:路由信息相关工具
route:
用于显示和管理的路由表
可以查看系统当前的路由信息,包括目标网络,网关,子网掩码等,还可以用于添加,删除或修改路由条目
ip addr
是ip命令的而一部分,用于管理系统的路由表
它提供了更强大和灵活的路由管理功能,可以进行更复杂的路由配置操作
sudo ip route add ip/24 dev eth1
sudo 管理员权限执行
ip route add用于添加一条路由条目
IP/24 是目标网络地址和子网掩码
dev eth1表示通过名为“eth1”的网络接口到达目标网络,执行这条命令可以向系统的路由表添加一条路由
四:路由跟踪工具
traceroute www.baidu.com
traceroute #是一个用于跟踪数据包从本地主机到目标主机所经过的路由路径的工具
www.baidu.com #是目标主机的域名或IP地址,执行这条命令会逐渐显示数据包经过的路由器的IP地址和响应时间
ssh服务
一:启动服务
sudo systenctl start ssh
sysytemctl #用于管理系统服务的工具
start #开启
status #查看
stop #停止
enable #自启动
二:连接本地主机
ssh root@localhost
ssh #Secure Shell客户端命令
root #是以root身份登录
localhost #本地
三:配置文件
/etc/ssh/sshd_config
ssh服务器的配置主要文件
其中包含各种参数,可以用来配置ssh服务的行为,比如端口号,允许登录用户,认证方式,访问控制等,通过编辑这个文件,可以根据具体需求对ssh服务器进行定制化配置
四:客户端配置
hash knownHosts yes;
通常情况下, ~/ssh/known_hosts文件用于存储已知远程主机的公钥信息,以确保连接的安全性,这个选项可能指示已知主机文件中的主机名进行哈希处理,这样可以提高一定的安全性,但具体效果可能因不同的ssh实现而有所差异
~/.ssh;
这是用户主目录下的一个目录,用于存储ssh客户端的配置和相关文件
通常包含私钥文件(id_rsa),公钥文件(id_rsa.pub)以及已知主机文件(known_hosts)等,这些文件用于SSH客户端的身份认证和连接管理
Linux目录介绍
/bin | 二进制可执行命令 |
/etc | 系统管理和配置文件 |
/etc/rc.d | 启动的配置文件和脚本 |
/home | 用户主目录的基点 |
/lib | 标准程序设计库。又叫动态链接共享库 |
/sbin | 超级管理员命令。这里存放的是系统管理员使用程序 |
/tmp | 公共的临时文件存储点 |
/root | 系统管理员的主目录 |
/mnt | 系统提供这个目录是让用户临时挂载的文件系统 |
/lost+found | 目录平时是空的,系统非正常关机而留下“无家可归”的文件就在这 |
/proc | 虚拟目录,是系统内存的映射,可以直接访问这个目录来获取系统信息 |
/var | 某些大文件的溢出区,例如:各种服务器的日志文件 |
/usr | 最庞大的目录,要用到的应用程序和文件几乎都在这个目录 |
/usr/sbin | 众多的应用程序 |
/usr/sbin | 超级用户的一些管理程序 |
基本命令
cd #切换目录
ls #显示当前目录的文件,相当于win的dir
clear #清空
pwd #显示当前所在的目录
vim #文本编辑器
vim 1.txt
i 输入
esc
!wq #!强制 w 保存 q 退出
touch 创建文件
mkdir -p (-p参数 遍历)
mkdir -p 123/1/2/3
rm -rf 123 (删除123目录)
-i 递归删除
-r 删除文件夹和它的所有内容
-f 强制删除
cp (copy的简写 就是复制)
mv (move的简写 移动文件)
cat (查看内容)
head (查看前半段内容)
head -5 #就是查看前五行内容
tail (查看后半段内容)
tail -5 #就是查看后五段内容
more (查看内容并翻页)
chmod rwx -R (数值4:读,数值2:写,数值1:执行,数值0:没有相对应权限)
r:读 w:写 x:执行
0777 #最高权限
chow #改变当前所处的用户和所处的用户组
useradd&&adduser
adduser #会自动为创建的用户指定木,系统shell版本,会在创建是输入密码
useradd #需要使用承诺书选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码,无主目录,没有指定shell版本
userdel -f y4er #删除y4er用户
sudo #以管理员权限使用,root下使用
password #修改用户密码
password root
Linux资源耗尽病毒
使用alert或notify-send等工具发送通知
#!/bin/bash
while true
do
notify-send "无线弹窗" "这是一个无线循环的弹窗"
sleep 2
done
保存这个脚本到一个文件当中,例如:
infinite_popup.sh #然后给她一个执行的权限
chmod +x infinite_popup.sh #最后运行这个脚本
./infinite_popup.sh
最后再补充一个
Windows使用的是dos变成
Linux使用的是bash编程
标签:文件,sudo,用户,命令,Linux,编写,权限,目录,病毒 From: https://blog.csdn.net/2301_78098553/article/details/143822980