一、安装软件
RHCSA LINUX
所需软件:VmwareWorkStation 16
rhel-baseos-9.0-x86_64-dvd 镜像文件
Xshell 远程终端工具
二、面试重点之修改密码
修改密码:
#第一步重启系统,然后按键盘的下键将白色条放到第二行上输入e
#第二步在linux开头那一行尾部添加rd.break,然后使用ctrl+x继续后面
#第三步输入输入mount查看设备挂载信息(主要看/sysroot目录挂载权限)
接着输入mount -o remount,rw /sysroot目录重新挂载已经挂载的设备,并以其他的权限挂载,这里我们需要rw权限
#第四步输入chroot /sysroot/ ,使用chroot命令改变系统的根目录的位置,将其改到/sysroot之后就可以进行密码修改
#第五步passwd root 输入两次密码
#第六步输入touch /.autorelabel
#第七步两次输入exit完成root密码重置
远程连接xshell
ssh root@192.168.62.129
(如果输入密码的时候服务器一直拒绝,则需要在虚拟机中打开bash)
输入:vim /etc/ssh/sshd_config
进入后输入/Root 匹配后删掉这一行的#键,将后面的内容删掉改为yes,如图
改完后:wq保存退出,输入 systemctl restart sshd
然后再去重新远程链接一下。
三、关于计算机的基本知识
***什么是操作系统?***
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是配置在计算机硬件上的第一层软件,任何其它软件都必须在操作系统的支持下才能运行。
开源
把软件程序和源代码一起打包给用户
使用自由,复制自由,修改自由,创造衍生品自由
低风险:
高品质
计算机的结构
硬件:显示器、键盘、鼠标、
输入:鼠标,键盘,扫描仪....
输出:打印机,显示器.....
主机:主机的组成是机箱、电源、主板、cpu、内存、硬盘、声卡、显卡、网卡、光驱、软驱、散热器
CPU
算数逻辑单元(程序的运算和逻辑判断)+控制单元(协调各周边组件和各单元之间的工作)
软件
“软件是一系列按照特定顺序组织的电脑数据和指令,是电脑中的非有形部分;电脑中的有形部分称为硬件,由电脑的外壳及各零件及电路所组成;电脑软件需有硬件才能运作,反之亦然,软件和硬件都无法在不互相配合的情形下进行实际的运作。”
控制器
(controller)是指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置。由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。
运算器
存储器
存储器单元实际上是时序逻辑电路的一种。按存储器的使用类型可分为只读存储器(ROM)和随机存取存储器(RAM),两者的功能有较大的区别,因此在描述上也有所不同。
操作系统
主要是通过操作系统内核实现的。
系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理的结果返回给应用程序。
小知识点:
SHELL 壳
Bash(bourne-Again SHELL)
终端
(终端设备,是计算机网络中处于网络最外围的设备,主要是用于用户信息的输入和处理结果的输出)
物理终端:
键盘、鼠标、显示器。
虚拟终端:
模拟终端(图形化界面)切换到重命令行的终端ctrl+alt+f3
伪终端
小知识点:
重命令行的终端切换到模拟终端 ctrl+alt+f2
四、初步使用Linux操作系统
命令格式
命令名称 [命令参数] 命令对象
命令名称:
动词,要做的某件事
命令对象:
一般要处理的文件、目录、用户
小知识点:
严格区分大小写
常用的Linux操作命令
ip a ifconfig 查看IP地址
reboot 重启 shutdown -r now 重启
shutdown -h now 关机 poweroff 关机
查看当前linux的发行版本:cat /etc/redhat-release
查看内核版本:uname -r
查看shell类型:cat /etc/shells chsh -l
查看当前的默认shell类型:echo $SHELL
[root@localhost ~] #
#:标识符,标识的是当前用户是root
$:标识符,标识的当前的用户是普通用户。
[root@localhost ~]
root:管理员,超级管理员,根用户
@:分隔符
localhost:本意标的是当前这台主机,也是这台主机的主机名。
~:当前用户的家目录。root用户的家目录:/root.
普通用户的家目录:/home/rhcsa
家目录:存放个人数据的地方
Ls(list directory contents):用于显示指定工作目录下的内容(文件及子目录)。
如果指定,则列出指定目录的内容。
如果不指定,则列出当前目录的内容。
/根,文件系统的根。 一切皆文件。
路径:
绝对路径:以根开始的路径。/home/rhcsa
相对路径:不以根开始的路径。Rhcsa
root
普通用户
su (switch user):用于变更其他使用者的身份。
如果从root切换到普通用户,则不需要输入密码。但是如果从普通用户去切换到root,则需要输入密码。
一般使用的时候需要加上-的选项去获取对应身份的环境变量和身份权限。
pwd(print work directory)显示工作目录
cd (change directory):切换当前工作目录
cd /root
cd - :切换到上一次切换的目录
cd ~:切换到当前用户的家目录
ls(list directory contents)列出当前工作目录下的内容。
-l 以长格式的形式显示文件和目录的信息(权限、所有者、大小、创建时间)ls -l =ll
-a 显示所有文件及目录(.开头的隐藏文件)
-A 不列出.(当前目录)和..(父目录)
-h 在-l基础上去使用h,以人类可读的方式显示当前目录中文件和目录的大小。
/bin 软链接(快捷方式),符号链接,binaries(二进制文件),可执行的应用程序。
/boot:存放的是启动程序后的核心文件(链接文件、镜像文件。)
/dev:存放的是linux的外部设备(光驱)。
/etc:存放的是系统管理所需要的配置文件。
/home:普通用户的家目录。
/root:root用户的家目录。
/lib:library(库),存放着系统最基本的动态连接共享库(32位),
/lib64:ibrary(库),存放着系统最基本的动态连接共享库(64位)
/media:挂载点目录,让用户去临时挂载别的文件系统。系统默认挂载点目录
/mnt:挂载点目录,手动去挂载点目录。
/opt:optional(可选),主机给额外安装软件所摆放的目录。
/sbin:超级用户的二进制文件的缩写,存放的是系统管理员所使用的系统管理程序。(超级管理员自己能用到的一些命令)
/srv:第三方服务,存放的是一些服务启动后需要提取的数据。
/tmp:temporary(临时):存放的是一些临时文件。
/usr:unix shared resource(共享资源),用户很多应用程序和文件都存放在该目录中。
/var:variable变量的缩写,存放的不断扩充的东西。(日志文件)
/run:是临时文件系统,存放的系统启动以来的信息(守护进程)
/sys 内核或者操作系统
/proc :进程的缩写
小知识点:
程序(由源代码生成的可执行文件)
进程(程序执行后形成了进程,它会占用内存资源。)
块设备(block device)
“块设备(block device) 是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性读到缓冲区。”
总线(bus)
(地址、控制、数据)
总线就是用于传送信息的通道,总线由许多传输线和通路构成,每条线可以一位一位地串行传输二进制代码,若干传输线可以同时传输若干位二进制代码,总线宽度指总线上可以同时传送二进制信息的位数
固件 (Firmware)
固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。
有关help的命令
help 命令 help cd
--help
命令 --help
help [command]
显示内置命令的帮助信息。
常见的参数:
-d : 输出每个命令的简短描述。
-m : 以手册页格式显示命令用法
-s : 仅输出每个匹配命令的简短使用概要。
man 命令 (manual)
man 命令是 Linux 下的帮助指令,通过 man 指令可以查看 Linux 中的指令帮助、配置文件帮助和编程帮助等信息。
man(选项)(参数)选项
-a:在所有的man帮助手册中搜索;-f:等价于whatis指令,显示给定关键字的简短描述信息;-P:指定内容时使用分页程序;-M:指定man手册搜索的路径。参数
数字:指定从哪本 man 手册中搜索帮助;关键字:指定要搜索帮助的关键字(/关键字)。
注意:空格是下一页,b上一页,/单词,n上一个关键字,N下一个关键字。
需要了解的内容
区段1:用户指定,查看命令的帮助。
区段2:系统调用,
区段3:程序库的调用
区段4:设备、查看特殊文件的帮助。
区段5:文件格式
区段6:游戏,查看游戏的帮助
区段7:
区段8:系统指令,
区段9:内核内部的指令。
Info 命令
info [OPTION]... [MENU-ITEM...]
-k, --apropos=STRING 在所有手册的所有索引中查找字符串。
-d, --directory=DIR 将目录添加到INFOPATH。
--dribble=FILENAME 记住用户在FILENAME中的击键。
-f, --file=FILENAME 指定要访问信息文件。
-h, --help 显示此帮助并退出。
--index-search=STRING 转到由索引项STRING指向的节点。
-n, --node=NODENAME 指定第一个访问信息文件中的节点。
-o, --output=FILENAME 将选定节点输出到FILENAME。
-R, --raw-escapes 输出“原始”ANSI转义(默认)。
--no-raw-escapes 输出转义为文本。
--restore=FILENAME 从FILENAME读取初始击键。
-O, --show-options, --usage 转到命令行选项节点。
--strict-node-location (for调试)按原样使用信息文件指针。
--subnodes 递归输出菜单项。
--vi-keys 使用类似VI和不太类似VI的键绑定。
--version 显示版本信息并退出。
-w, --where, --location 打印信息文件的物理位置。
Date(系统时间)
date 命令可以用来显示或设定系统的日期与时间
date -s “年月日 时:分:秒“
date 月日时分年
-d, --date=STRING:通过字符串显示时间格式,字符串不能是'now'。
-f, --file=DATEFILE:类似于--date; 一次从DATEFILE处理一行。
-I[FMT], --iso-8601[=FMT]:按照 ISO 8601 格式输出时间,FMT 可以为'date'(默认),'hours','minutes','seconds','ns'。 可用于设置日期和时间的精度,例如:2006-08-14T02:34:56-0600。
-R, --rfc-2822 : 按照 RFC 5322 格式输出时间和日期,例如: Mon, 14 Aug 2006 02:34:56 -0600。
--rfc-3339=FMT:按照 RFC 3339 格式输出,FMT 可以为'date', 'seconds','ns'中的一个,可用于设置日期和时间的精度, 例如:2006-08-14 02:34:56-06:00。
-r, --reference=FILE:显示文件的上次修改时间。
-s, --set=STRING:根据字符串设置系统时间。
-u, --utc, --universal:显示或设置协调世界时(UTC)。
小知识点:
两种使用date设置时间的方式:
date 月日时间年
date -s “年月日 时:分:秒”
--help:显示帮助信息。
--version:输出版本信息。
clock(硬件时间)
-r
:读取系统硬件时钟;
-s
:设置系统时钟;
-w
:将系统时钟写入硬件时钟;
-u
:以UTC格式显示时间;
-l
:以本地时区格式显示时间;
-t
:输出系统定时器的相关信息。
BIOS
LinuxBIOS又叫Coreboot,它的目标是以能在冷启动状态下启动Linux的Linux内核来替代PC、Alpha和其它机器上的常规BIOS。
hwclock
hwclock在Linux中有硬件时钟与系统时钟等两种时钟
hwclock -r
hwclock --hctosys将硬件时间给到到系统时间
hwclock --systohc
timedatectl
是Linux
下的一条命令,用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。这篇文章简单介绍一下如何使用timedatectl
进行常见操作。
查看当前时间/日期/时区:timedatectl
或者timedatectl status
查看所有可用时区:timedatectl list-timezones
设置时区:timedatectl set-timezone “时区信息”
设置UTC:timedatectl set-timezone UTC
设置时间:timedatectl set-time HH:MM:SS
设置日期:timedatectl set-time YYYY-MM-DD
设置日期时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS”
设置硬件时钟为本地时间:timedatectl set-local-rtc 1
设置硬件时钟为UTC时间:timedatectl set-local-rtc 0
启动NTP
时间同步(启用NTP
服务或者Chrony
服务):timedatectl set-ntp true
禁用NTP
时间同步:timedatectl set-ntp false
cal
用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。
cal:当月日历
cal -y:当月日历
cal -j:获取现在是当年第几天
- rw- --- --- . 1 root root 1073 Oct 21 2023 anaconda-ks.cfg
- 标记位——文件类型
- 普通文件
d 目录文件
l 链接文件
软链接 硬链接
文件:元数据inode(索引节点)
硬链接hard link
和软链接(符号链接symbolic link )
硬链接特点
- 必须有原始文件
- 在同一个文件系统里面创建
- 不能对目录进行创建
软链接特点:
- 对不存在的目录和文件进行创建
- 对存在的目录和文件进行创建
- 可以跨文件系统创建的
- 删除软链接的时候对原文件没有任何影响
Ln
Ln -s 原始文件 软链接文件
Ln 原始文件 硬链接文件
用户数据
B block 块设备文件
C 字符设备
P pipiline管道设备文件
S socket 套接字文件 IP地址+端口号
文件权限
Rw- --- --- .
A B C D
A:该文件的所有者对文件的权限。
B:该文件的所属组的对该文件的权限。
C:其他人对该文件的权限。
D :扩展权限。
d rwx r-x r-x .
r 读取的权限
w 对文件内容进行更改的权限
x 对文件的执行权限。
- 没有权限
Access 访问时间:用户读取文件内容的时间
Modify 修改时间:修改文件内容的时间。
Change 改变时间:用来标记文件元数据发生变化的时候。
Birth 创建时间:创建文件的时间。
Stat 用于显示文件元数据的内容
Touch 修改文件的时间戳
如果touch一个已经存在的文件,则会把它除了创建时间之外的剩下时间全部进行修改。
如果touch一个不存在的文件,则会创建该文件。
touch 文件名
touch {1..2}{a..c}{4..8}
不能使用/来当文件名
Mkdir(make directory)创建目录。
mkdir 目录名
mkdir 目录名 目录名 ......
mkdir -p g/gg/ggg/ggg就是创建多层级目录
级联目录:
mkdir -p g/gg/ggg/ggg就是创建多层级目录
可以用tree查看
Tree目录
以树状格式列出目录的内容, 查看文件系统的结构
tree
-a 显示所有文件和目录
-d 仅显示目录
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-f 在每个文件或目录之前,显示完整的相对路径名称(即相对于当前路径的完整路径)
-L level 限制目录显示层级。
-p 列出文件权限标示
-s 列出文件和目录大小
-h 用更易懂的方式列出文件和目录大小
-D 列出文件或目录的更改时间
目录:
rm
rm 要删除的对象(普通文件)
rm = rm -I 删除的话y,不删除的话n
忽略提示信息删除:\rm 要删除的对象
rm -f 要删除的对象
rm -rf 要删除的对象
要清空当前目录:rm -rf *
(*代表的匹配所有)
Cp
复制文件名字或目录
Cp 选项 源文件 目标文件
源文件:要复制的路径
目标文件:
复制目录:
-r 时间戳改变
-p:保留权限
-a:原数据完整不动拷贝,时间也不变
查看:
普通路径:
绝对路径:
mv
移动或重命名文件
选项 源文件名称 目标文件名称
选项 源文件名称 目标文件名称
>输出重定向符
>>追加输出重定向符
区别:
>是覆盖
>> 不覆盖
创建文件
vim 文件名:创建并且写入 cat 文件名 :展示写入内容
>> 文件名
touch 文件名
echo 输入的内容 >文件名
CTRL+移前
ctrl+e移后
ctrl+d从前向后删
CTRL+u删前
CTRL+k删后
CTRL+ 左键 移前
CTRL+ 右键 移后
¥光标到行尾
whereis 参数 命令名称
-m 只查说明文件
-
find 路径 匹配表达式
-name 文件名(*,?)
-type 文件类型 (f普通文件、d目录文件、l链接文件)。
-size 文件大小 +1M -1M c(字节) w(字数)b(块数) K M G
-user 文件的所有者
-group 文件的所属组
-atime n分钟 查找n分钟内被访问的文件
-ctime n 分钟
-mtime n小时
-mmin n分钟
-exec …… {} \;
.....
locate
locate 选项 要查找的内容
grep:
用于查找文件里面的字符串或者正则表达式
grep 选项 字符串 文件的路径
-n 找到字符串所在行
-c 查找到字符串拥有的行数
-l 只打印匹配到文件名
-v 反向查找
-r 递归查找。
grep hello文件名
grep -c hello 文件名
grep ^[h] 文件
grep ^[gf] 文件
grep ^[^gf] 文件
grep ^[0-9] 文件
grep ^$ 文件
grep ^[^^$] 文件
grep -v ^$ 文件
grep r 文件
grep hello f*
grep hello *1
cat (concatenate)
显示文件内容。
语法格式:cat 选项 文件
-n:由1开始对所有输出的行数编号
-b:由1开始对所有输出的行数编号,空白行不编号
head
可用于查看文件的开头部分的内容,默认显示前十行。
语法格式:head 参数 文件
-q 隐藏文件名
-v 显示文件名
-c<数目> 显示的字节数。
-n<行数> 显示的行数。
tail
tail 命令可用于查看文件的内容
常用的参数 -f 常用于查阅正在改变的日志文件。
语法格式:tail 参数 文件
more
more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。
more 文件名
cut
命令用于按列提取文本内容,
语法为:`cut [选项] 文件名称`
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
- b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -c :以字符为单位进行分割。
- -d :自定义分隔符,默认为制表符。
- -f :与-d一起使用,指定显示哪个区域。
- -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除。
scp
scp-OpenSSH安全文件复制
-3 两个远程主机之间的副本通过本地主机传输。如果没有此选项,则直接在两个远程主机 之 间复制数据。请注意,当使用旧版SCP协议通过-0标志)时,此选项将为第二台主机选择批处理模式,因为scp无法同时为两台主机请求密码或通行短语。此模式为默认模式。
-4 强制scp仅使用IPv4地址。
-6 强制scp仅使用IPv6地址
-A 允许将ssh-agent (1)转发到远程系统。默认情况下不转发身份验证代理
-B 选择批处理模式(防止要求输入密码或密码短语)
-C 压缩启用。将-C标志传递给ssh (1) 以支持压缩
-c密码
选择用于加密数据传输的密码。这个选项直接传递给ssh (1)
-D sftp_server路径
当通过-M使用SFTP协议支持时,直接连接到本地SFTP服务器程序,而不是通过ssh (1)远程连接。此选项在客户端和服务器的反窃听中可能很有用。
-F ssh config为ssh指定一个可选的每个用户配置文件。这个选项直接传递给ssh (1)。
-我的身份证明文件选择从中读取公钥身份验证的标识 (私钥)的文件。这个选项直接传递给ssh(1)。
J目的地
连接到目标主机的方法是:首先建立到目的地描述的跳转主机的scp连接,然后从那里建立到最终目的地的TCP转发。可以指定多个跳跃跳数,用逗号分隔。这是指定ProxyJump配置指令的快捷方式。这个选项直接传递给ssh (1)。
-升限制
限制使用的带宽,以Kbit/s为单位。
-0
使用旧的SCP协议进行文件传输,而不是SFTP协议。对于没有实现SFTP的服务器,强制使用SCP协议可能是必要的,这是为了向后兼容特定的文件名通配符模式和用于扩展路径的
Sort 对文本内容进行排序显示
语法格式:sort 选项 文件名称
-f | 忽略大小写 |
-b | 忽略缩进与空格 |
-n | 依照数值的大小排序 |
-r | 反向排序 |
-u | 去除重复行 |
-t | 指定间隔符 |
-k | 设置字段范围 |
tr 要替换的内容 替换的内容 文件
wc
统计文本文件的行数、字数、字节数。
wc 选项 文件名称
-l 只显示行数
-c 只显示字节数
-w 只显示单词数
.zip
zip 压缩后的文件名 要压缩的文件
tar 选项 包名(压缩文件) 文件名
文件传送格式
scp -r 当前主机文件 目标主机的对应路径
scp -r f1 root@192.168.197.128:/
文件接收格式
scp 目标主机路径的文件 接收到当前主机路径
scp root@192.168.197.129:/root/file1 /
;分割多条命令
alias 别名=‘原命令 选项’
rm=’rm -I’
history
查看历史命令
-c 清空当前的历史记录
-a 文件名
-r 文件名
-w
管理用户和组
创建用户
Useradd
创建新用户
useradd 选项 用户名
-u uid
-g gid
-G 指定附加组
-c “注释信息”,
-d 指定某个目录为用户的家目录
-s 指定用户使用的shell
例如:
注意:
除此以外,还可以使用vim命令进入passwd,翻到最后直接书写一个新的用户,更加的快捷方便,我个人更喜欢这个方式
例如:
Passwd
设置用户密码
-n 指定密码最短使用权限
-x 指定密码最长使用权限
-w 制定警告时间
-d 删除用户密码。
注意:
只用设置密码之后,才能在虚拟机中用新的用户身份进入
usermod
修改用户名
usermod 选项 用户名
-l 新用户名
-L锁定用户账户,使其不能登录
-U 解锁用户账户
Userdel 用户名
-r
注意:
带 -r删除的更彻底哦~ 若不带-r则未删除彻底,则不能重新创建相同的用户,需要进入所创建的地址删除其原来储存的文件
除此以外,还可以使用vim命令进入passwd删除自己新建的用户所有内容
groupadd
创建一个新的组
groupadd 命令选项 组
-g GID(组id)
groupmod
修改组
-g 改GID
-n 改组名
groupdel
删除组
注意:
若要删除组,需先删除该用户
第一部分是加密算法
第二部分是盐(solt)
第三部分是密码密文
小知识点:
盐值,也称为Salt值,是用户注册时系统用来和用户密码进行组合而生成的随机数值。这个随机值可以包括随机的大小写字母、数字、字符,位数可以根据要求而不一样。盐值可以使得加密的得到的密文更加冷僻,不宜查询。即使黑客有密文查询到的值,也是加了盐值的密码,而非用户设置的密码。经过添加盐值处理的密码,即使用户设置的原密码是相通的,数据库中的密文却是不同的。
加盐值是为了增加密码的安全性和保密性。盐值可以用来加密存储密码,同时也可以用于密码校验。通过添加盐值,可以有效防止黑客通过暴力破解用户ID和密码,即使数据库中的密码是以加密形式存储的,加盐加密的方式仍然能够增加破解的难度,保护用户的个人信息和隐私。
另外,使用盐值还可以避免使用相同密码的用户在系统中的密码被轻易破解。因为盐值是随机生成的,不同的用户即使使用相同的密码,他们的盐值也是不同的,因此加密后的密文也会不同,从而增加了密码的安全性。
需要注意的是,盐值的产生和存储都需要安全随机数生成,并且盐值的长度也需要有一定的要求,较短的盐值仍然存在被破解的风险。因此,在使用加盐加密的方式时,需要确保盐值的生成、存储和使用都符合安全要求。
哈希算法、SHA-512以及加盐值之间的关系可以通过以下几点进行说明:
哈希算法:这是一种从任何大小的数据(通常是字符串)生成固定长度哈希值的方法。哈希值是一段固定长度的字母和数字的组合。哈希算法的特点是它是单向的,也就是说,一旦数据被哈希,就不能被反向工程回原始数据。
SHA-512:这是一种特定的哈希算法,它生成的哈希值是512位的。SHA-512是安全散列算法(SHA-2)家族中的一部分,被广泛认为是非常安全的。
加盐值:在密码学中,盐是添加到哈希过程中的一个随机值。添加盐的目的是为了增加哈希的复杂性并降低攻击者通过彩虹表等方式破解哈希值的可能性。即使两个用户使用了相同的密码,由于盐的差异,他们的哈希值也将是不同的。
总结一下,哈希算法是一种将数据转化为固定长度字符串的方法,SHA-512是其中一种特别安全的哈希算法,而加盐值则是为了提高哈希安全性的一种技术,它使得即使相同的输入也会得到不同的哈希输出。
权限
修改权限
chmod
修改文件或者目录的权限
Chmod 对象 符号(+ - =)权限(r w x) 文件名
对象有:
-u 所属者
-g 所属组
-o 其他人
-a 全部
符号有:
+ - =
权限有:
例如:
f1文件的所属组拥有读取和执行权限,所属者拥有执行权限,其他人拥有读取权限。
file1文件的其他人拥有读取执行修改权限、所属者拥有修改和执行权限、所属组拥有的是读取和执行权限、
数字设定法
例如:
对于file2文件来说,其他人拥有修改执行权限、所属组拥有执行读取权限,所属者拥有读取修改执行权限
对象是f2文件,所属组拥有执行和读取权限、所属者拥有修改和执行权限,其他人拥有修改权限。
特殊权限
Chmod u+s 文件名称
Chmod 0777 文件 去掉该文件的suid权限
Chmod 4777 文件 增加该文件的suid权限
修改普通用户密码
su - 普通用户
passwd
成功
注意:
只有拥有x权限的前提下,才能添加s权限,并且修改原有的密码。否则添加的s则会显示为S,并且不能修改密码
Chmod 0777 文件 去掉该文件的sgid权限
Chmod 2777 文件 增加该文件的sgid权限
chgrp
修改所属组
chgrp 原所属组 现在的所属组
注意:
可用 ll -d 所修改的文件,查看是否修改成功
Sticky Bit t
SBit 只针对目录有效,在具有SBit权限的目录下,如果该用户在该目录下拥有wx权限,则当用户在该目录下创建文件或者目录的时候,只有文件拥有者和root用户才有权限去删除里面的东西。
Chmod 0777 文件 去掉该文件的sbit权限
Chmod 1777 文件 增加该文件的sbit权限
拓展权限
ACL:给指定的用户分配指定的权限。
查看acl权限
getfacl 文件名
设定acl权限
语法:`setfacl 选项 文件名`
选项:
> -m:设定 ACL 权限。如果是给予用户 ACL 权限,则使用`u:用户名:权限`格式赋予;
如果是给予组 ACL 权限,则使用`g:组名:权限"`格式赋予;
> -x:删除指定的 ACL 权限;
> -b:删除所有的 ACL 权限;
> -d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限;
> -k:删除默认 ACL 权限;
> -R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效;
例如:
希望大黑这个组里的同学不仅能够读取秘密这个文件内容还可以像这个文件追加个人信息,大黑 男 18 小黑 男18