SRE-第一周作业

2026-05-18 11:59:4467 阅读量

SRE-第一周作业

1. 总结计算机发展相关,并且总结服务器硬件相关知识。

1.1 .计算机发展相关历史

  • 第一代计算机(1946-1957):电子管时代

#世界上第一台计算机

相关服务:美国GPU服务器

1946年,世界上第一台计算机ENIAC(electronic numerical integrator and calculator 电子数字积分计算机)在美国宾州大学诞生,是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的。使用了17468只电子管,占地170平方米,重达30吨,耗电174千瓦,耗资40多万美元。每秒可进行5000次加法或减法运算

#冯诺依曼体系

1946 年美籍匈牙利数学家冯 · 诺依曼于提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯· 诺依曼体系的要点是:
1.数字计算机的数制采用二进制, bit 位 , byte 字节 1 byte =8 bit
2.计算机应该按照程序顺序执行
3.计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成
  • 第二代计算机(1958-1964):晶体管时代
  • 第一代计算机(1965-1970):集成电路时代
  • 第一代计算机(1971年以后):大规模集成电路时代

1.2. 服务器相关知识

1.2.1.按服务器外形分类
#PC 服务器常见的三种外型:
1.塔式服务器
如图所示,早期的服务器形式,目前较少使用。外形以及结构和平时使用的立式PC差不多,机箱空间大,主板扩展性较强,插槽较多,预留了足够的内部空间,以便日后进行硬盘和电源的冗余扩展,设计一般都考虑降噪
2.刀片式服务器
如图所示,密度更高的服务器,称为刀片服务器。这种服务器组成一组,放在一个框里面,可以整框使
用。 在标准高度的机架式机箱内可插装多个卡式的服务器单元,实现高可用和高密度和 更高的密度,集中管理,高性能,灵活扩展,按需配置 可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高 速的网络环境,并同时共享资源,为相同的用户群服务
3.机架式服务器

如图所示,按照统一标准设计,配合机柜统一使用,便于统计管理,高密度,节省空间,常用U为单位,1U=1.75英寸=44.45毫米,机箱尺寸比较小巧,在机柜中可以同时放置多台服务器,机架式服务器的宽度为19英寸(48.26cm),厚度通常有1U,2U,3U,4U,5U,7U几种标准的服务器机柜的尺寸也是采用通用的工业标准,如:宽度600mm,深度1000mm,高度2000mm(42U),现阶段是最主流的的服务器。

1.2.2.服务器硬件组成

主要有CPU、主板、内存、硬盘、网卡

1.2.2.1.服务器硬件——CPU
CPU : Central Processing Unit ,即中央处理器。由控制器和运算器构成,是整个计算机系统中最重要的部分
CPU 指令集分类:
CISC : Complex Instruction Set Computer ,复杂指令集
RISC : Reduced Instruction Set Computer ,精减指令集
架构:
1.X86/x86_64 架构:主导桌面与服务器芯片市场
2.ARM架构:
       手机:华为小米三星苹果
       pad:华为小米三星苹果
       机顶盒:各种电视机顶盒
       华为泰山服务器-鲲鹏系列CPU
3.POWER 架构: 由 IBM 设计, POWER 系列微处理器在不少 IBM 服务器、超级计算机、小型计算机及工作站中,广泛使用。
4.RISC-V 架构:官网: https://riscv.org
服务器 CPU 公司
Intel :
Xeon 至强
Itanium 安腾
AMD : Althlon MP
IBM : Power
按照 CPU 体系架构来区分,服务器主要分为两类:
x86 服务器: 采用 CISC (复杂指令集)架构服务器,即通常所讲的 PC 服务器,它是基于 PC 机体系结构,使用Intel 或其它兼容 x86 指令集的处理器芯片的服务器。目前主要为 intel 的 Xeon E3 , E5 , E7 系列,价格相对便宜、兼容性好、稳定性较差、安全性不算太高
非 x86 服务器: 采用 RISC (精简指令集)或 EPIC (并行指令代码) 处理器,主要采用 UNIX 和其它专用操作系统的服务器,CPU 主要有 IBM 的 Power PC 、 MIPS 的 MIPS 、 SUN 的 Sparc 、 Compaq 的 Alpha 、 HP 的PA-RISC、 Intel 研发的 EPIC 安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统
1.2.2.2.服务器硬件---主板
主板 mainboard ,安装在机箱内,是计算机最基本的也是最重要的部件之一

主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键盘和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件

1.2.2.3.服务器硬件---内存

内存是介于CPU 和外部存储之间,是CPU 对外部存储中程序与数据进行高速运算时存放程序指令、数据和中间结果的临时场所,它的物理实质就是一组具备数据输入输出和数据存储功能的高速集成电路。
内存是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取速度快。
计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。
与之相对应的还有外存:硬盘,U盘,软盘,光盘

内存和外存的区别:
内存速度快,价格高,断电后数据丢失
外存速度慢,价格相对低廉,断电后数据可以保存
容量: 即该内存的存储容量,单位一般为 GB
内存带宽:
内存带宽是指内存与北桥芯片之间的数据传输率, B byte 字节 b bit 位
单通道内存控制器一般都是 64-bit 的, 8 个二进制位相当于 1 个字节,换算成字节是 64/8=8 ,再乘以内存的运行频率,如果是双通道内存就要再乘以2
计算公式: 内存带宽 = 内存总线频率 × 数据总线位数 /8
eg:
单通道DDR(Double Data Rate双倍速率)内存带宽计算
DDR4-4000:4000MHz*64bit/8=32000MB/S=32GB/S
DDR4-3600:3600MHz*64bit/8=28800MB/S
双通道: DDR4-4000:4000MHz*64bit*2/8=64000MB/S
1.2.2.4服务器硬件---硬盘
1956 年 IBM 公司研发的世界上第一块电脑硬盘容量为 5M, 大小和家用洗衣机差不多
#常见的磁盘接口种类:
IDE : Integrated Drive Electronics ,电子集成 [ 驱动器,早期家用电脑常用接口
SCSI : Small Computer System Interface ,小型计算机系统接口,早期的服务器常用接口
SATA : Serial ATA ( Advanced Technology Attachment 高技术配置),家用电脑常用的接口
SAS : Serial Attached SCSI ,是目前服务器上主流的接口
光纤通道: Fiber Channel ,高性能服务器上采用的接口
M.2 :固态硬盘接口,性能更强
#结构分类 :
机械硬盘 HDD ( Hard Disk Drive )
固态硬盘 SSD ( Solid State Drives )
#机械硬盘:
1.存储介质( Media ) —— 盘片: 盘片的基板是金属或玻璃材质制成,为达到高密度高稳定的质量,基板要求表面光滑平整,不可有任何暇疵
2.读写磁头( Read Write Head ) —— 磁头 :磁头是硬盘读取数据的关键部件,它的主要作用就是将存储在硬盘盘片上的磁信息转化为电信号向外传输
3.马达( Spindle Motor & Voice Coil Motor ):马达上装有一至多片盘片,以7200 , 10000 , 15000 RPM 等定速旋转,为保持其平衡不可抖动, 所以其质量要求严谨,不产生高温躁音
机械硬盘基本参数:
1.容量:容量是硬盘最主要的参数。单位有 MB 、 GB 、 TB ,常见容量: 500GB , 1T , 2T , 3T , 4T , 6T
2.转速:转速是指硬盘盘片每分钟转动的圈数,单位为 rpm 。常见: 7200rpm , 10000rpm, 15000rpm
3.传输速率:传输速率 (Data Transfer Rate) 。硬盘的数据传输率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s ),常见: 6Gb/s,12Gb/s
4.缓存:硬盘缓存的目的是为了解决系统前后级读写速度不匹配的问题,以提高硬盘的读写速度
5.磁盘尺寸: 3.5”/2.5”/1.8”
6.是否支持热插拔
SSD硬盘: 即固态硬盘,泛指使用 NAND Flash 组成的固态硬盘。其特别之处在于没有机械结构,以区块写入 和抹除的方式作读写的功能,因此在读写的效率上,非常依赖读写技术上的设计 SSD 读写存取速度快, 性能稳定,防震性高,发热低,耐低温,电耗低,无噪音。因为没有机械部分,所以长时间使用也出现 故障几率也较小。缺点:价格高,容量小,相对普通机械硬盘性价比低
1.2.2.5.服务器硬件---网卡
服务器一般都在主板上集成了网卡 LOM (LAN on motherboard 主板集成网卡 ) ,传输速率通常为
1Gbps ,即千兆网卡
特殊应用需要高端网卡,如光纤网卡, Infiniband 网卡等,传输速率能达到 10Gbps 、 20Gbps ,即万兆网卡
1.2.2.6.服务器硬件-相关其他硬件
IPMI 是智能型平台管理接口( Intelligent Platform Management Interface )的缩写,是管理基于 Intel 结构的企业系统中所使用的外围设备采用的一种工业标准,该标准由英特尔、惠普、NEC 、美国戴尔电脑和SuperMicro 等公司制定。用户可以利用 IPMI 监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。而且更为重要的是IPMI 是一个开放的免费标准,用户无需为使用该标准而支付额外的费用。
IPMI 定义管理员如何监测系统硬件和传感器、控制系统组件和检索重要系统事件的日志以进行远程管理和恢复。
自 1998 年, IPMI 论坛创建了 IPMI 标准依赖,其已经得到了 170 多家供应商的支持,这使得其逐渐成为了一个完整地包括服务器和其他系统(如存储设备、网络和通信设备)的硬件管理规范. 当前流行的是 IPMI 2.0
远程管理卡就是基于IPMI 实现的服务器特有的远程管理部件,在家用电脑及笔记本电脑上是不存在的。
远程管理卡是安装在服务器上的硬件设备,提供一个以太网接口,使它可以连接到独立于业务网络的专用的管理网络中,提供远程访问, 如查看服务器状态 , 调整 BIOS, 配置 RAID, 安装系统 , 重启系统等。这种远程管理是基于服务器主板上集成的基板管理控制器BMC ( Baseboard Manager Controller) 实现, BMC就是一个独立于服务器的微处理器系统, 可以完成负责监测和管理操作系统之外的服务器环境和状态。它 既不会占用服务器系统资源,也不会影响服务器系统的运行。所有远程管理卡都是向BMC 发送指令来实现服务器的管理和监控功能. 只要服务器通电而无需启动操作系统 ,BMC 即可正常工作。
早期(2010 年以前),服务器托管在 IDC 机房,一旦出现问题,还得跑机房或者请机房的人管理。有了远程管理卡之后,运维人员管理服务器的效率就大大的提高了。
远程管理卡有服务器自带的和独立的两类。服务器自带的远程管理卡,可以关机、开机,但是看不到开关服务器的过程。所以,建议给服务器配备独立的远程管理卡,可能会多花100 多块钱的样子,但是,当服务器出现问题,就不需要打车或者出差,也不用给机房人员打电话了,可以利用远程管理卡快速查看服务器故障并恢复服务。
各个服务器厂商都提供了符合 IPMI 标准的远程管理接口 , 但称呼不尽相同 , 比如 Dell 的 iDRAC, 惠普的 ILO, 浪潮的IPMI, 华为的 IBMC, 联想的 xclarity, 华三的 HDM 等
上图是浪潮的服务器 IPMI 卡 , 不过和 DELL 不同 , 浪潮的服务器是出厂默认带的 IPMI 接口
上图为 Dell 的 iDRAC((integrated Dell Remote Access Controller)) 卡即是远程管理卡 , 相当于是附加在服务器上的一台独立运行的小型pc ,通过与服务器主板上的管理芯片 BMC 进行通信,监控与管理服务器的硬件状态信息。它拥有自己的系统和IP 地址,与服务器上的 OS 无关,是服务器管理员进行远程访问和管理的便利工具
1.2.2.7.服务器硬件---阵列卡

1.Raid 卡用来实现 RAID 的建立和重建,检测和修复多位错误,错误磁盘自动检测等功能。 RAID 芯片使 CPU的资源得以释放,阵列卡把若干硬盘驱动器按照一定要求组成一个整体、由阵列控制器管理的系统
2.阵列卡可以用来提高磁盘子系统的性能及可靠性
3.支持的多种 RAID 级别, RAID0 , 1 , 5 , 6 等
4.阵列卡提供缓存及电池保护
1.2.2.8.服务器硬件---电源

支持服务器的电力负载,支持冗余,防止电源故障 ,故障预警和防止 ,故障之前的预防性维护,保证服务器持续运行,电源子系统包括:冗余电源和风扇
1.2.2.9.服务器硬件---显卡
服务器都在主板上集成了显卡,但是显存容量不高,一般为 16M 或 32M , GPU : Graphic Processing Unit,即 “ 图形处理器 ”
1.2.3.0.服务器硬件---热插拔技术
热插拔技术,称为热交换技术( Hot Swap ),允许在不关机的状态下更换故障热插拔设备,常见的热插拔设备:硬盘,电源,PCI 设备,风扇等。热插拔硬盘技术与 RAID 技术配合起来,可以使服务器在不关机的状态下恢复故障硬盘上的数据,同时并不影响网络用户对数据的使用
1.2.3.1服务器硬件---机柜

1.机架式服务器 - 服务器放置在机柜中
2.通常使用的机柜是 42U (约 2 米高)机柜( 1U=44.45mm )
3.外观尺寸一般为:宽 600* 深 1000* 高 2000 ( mm )
4.在一个机架上,累计设备 U 数一般不超过 26U ,全 1U 设备部署数量一般不超过 16 台,全 2U 设备一般不超过12 台,全 4U 设备一般 4 到 7 台

2. 制作一个教程,说明vmware软件如何下载安装。安装rocky 8.5, ubuntu22.04,并结合xshell说明如何通过虚拟IP登入系统。

2.1.VMware安装

# VMware 官方下载地址:
VMware Desktop Hypervisors for Windows, Linux, and MacRun Windows, Linux, and other virtual machines with Workstation Pro for Windows and Linux or Fusion for Mac, the industry-standard desktop hypervisors.icon-default.png?t=N7T8https://www.vmware.com/products/desktop-hypervisor.html?spm=5176.28103460.0.0.6ddb3da2Ih5mjE

注册码百度VMware workstation 17许可证即可激活

2.2.安装rocky8.5

rocky下载地址:Index of /vault/rocky/8.5/isos/x86_64/

选择自定义高级

默认即可,下一步

选择下载的rocky8.5镜像,并下一步

选择安装位置,由于C盘是系统盘,所以我们安装在E盘,选择完毕后下一步

默认即可,选择完毕下一步

默认即可,选择完毕下一步

选择NAT即可

默认即可

Linux系统选择SCSI

选择创建新虚拟机磁盘

默认即可,建议存储为单个文件

下一步即可

点击完成即可开始安装

选择第二个即可

选择英语

时区选择shanghai

设置root密码

配置网络和主机名

设置完成后,点击下一步

点击重启即可完成安装

同意许可证

点击下一步

创建用户名和密码

完成安装

2.2.1.使用xshell连接虚拟机

先查看虚拟机ip地址

输入虚拟机IP地址

输入登录账号和密码

接受并保存

登录成功

2.3.安装Ubuntu 22.04

ubuntu下载地址 https://mirrors.ustc.edu.cn/ubuntu-releases/22.04/

默认即可

默认即可

选择Ubuntu server

配置网络

选择国内源,加速安装

默认即可

默认即可

选择用户名、域名和用户名密码

选择安装ssh服务

 默认即可  

开始安装Ubuntu22.04

点击重启即可完成安装

输入创建的用户名和密码

2.3.1.使用xshell连接Ubuntu

查看IP地址

输入虚拟机ip地址和用户名密码,并点击连接

登录成功


3. 结合man命令总结linux常用基本命令用法,以及查看帮助文档的方法。

3.1.man命令

man提供命令帮助的文件,手册页存放在/usr/share/man

几乎每个命令都有man的页面

man帮助

https://man7.org/linux/man-pages/index.html

https://man7.org/linux/man-pages/dir_all_alphabetic.html

中文man需要安装包

1.man-pages

2.man-pages-zh-CN

# man 页面分组
不同类型的帮助称为不同的“章节”,统称为linux手册,`man 1 man`

1  用户命令
2  系统调用
3  C库调用
4  设备文件及特殊文件
5  配置文件格式
6  游戏
7  杂项
8  管理类的命令
9  Linux 内核API

# man 命令的配置文件:

# centos 6 之前版 man 的配置文件

/etc/man.config

# CentOS 7 之后版 man 的配置文件

/etc/man_db.conf

# ubuntu man 的配置文件

/etc/manpath.config

# 格式:
MANPATH /PATH/TO/SOMEWHERE    # 指明man文件搜索位置
# 也可以指定位置下搜索COMMAND 命令的手册页并显示:
man -M /PATH/TO/SOMEWHERE COMMAND
# 查看man手册页
man [OPTION...] [SECTION] PAGE ...
man [章节] keyword

# 常用选项
1.列出所有帮助
man -a keyword

eg:

[root@rocky ~]# man -a ls

2.搜索man手册
列出所有匹配的页面,使用`whatis 数据库`
man -k keyword

3.打印man帮助文件的路径
man -w [章节] keyword

[root@rocky ~]# man -w 1 ls
/usr/share/man/man1/ls.1.gz

#eg:安装man帮助包
root@ubuntu:~# man -w 1 passwd
/usr/share/man/man1/passwd.1.gz
root@ubuntu:~# whatis passwd
passwd (1)           - change user password
passwd (1ssl)        - OpenSSL application commands
passwd (5)           - the password file

#eg:查看passwd相关命令和文件,man帮助文件路径
[root@rocky ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz


# 示例3:直接打开man的帮助文件
[root@rocky ~]# man -w ls
/usr/share/man/man1/ls.1.gz

[root@rocky ~]# file /usr/share/man/man1/ls.1.gz 
/usr/share/man/man1/ls.1.gz: gzip compressed data, max compression, from Unix, original size 7921
# 直接打开man的gz压缩格式文档
[root@rocky ~]# man /usr/share/man/man1/ls.1.gz

4. 总结linux文件系统相关知识,并结合操作演示文件操作常见的命令

4.1常见命令

4.1.1.查看cpu

`lscpu`命令可以查看cpu信息

`cat /proc/cpuinfo`也可以查看到cpu信息,这个是每核都能查看到

[root@rocky ~]# lscpu
架构:           x86_64
CPU 运行模式:   32-bit, 64-bit
字节序:         Little Endian
CPU:             4
在线 CPU 列表:  0-3
每个核的线程数: 1
每个座的核数:   2
座:             2
NUMA 节点:      1
厂商 ID:        GenuineIntel
BIOS Vendor ID:  GenuineIntel
CPU 系列:       6
型号:           183
型号名称:       Intel(R) Core(TM) i9-14900HX
BIOS Model name: Intel(R) Core(TM) i9-14900HX
步进:           1
CPU MHz:        2419.199
BogoMIPS:       4838.39
虚拟化:         VT-x
超管理器厂商:   VMware
虚拟化类型:     完全
L1d 缓存:       48K
L1i 缓存:       32K
L2 缓存:        2048K
L3 缓存:        36864K
NUMA 节点0 CPU: 0-3

[root@rocky ~]# cat /proc/cpuinfo 
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 183
model name    : Intel(R) Core(TM) i9-14900HX
stepping    : 1
microcode    : 0x122
cpu MHz        : 2419.199
cache size    : 36864 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 2
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 32
wp        : yes
bogomips    : 4838.39
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 183
model name    : Intel(R) Core(TM) i9-14900HX
stepping    : 1
microcode    : 0x122
cpu MHz        : 2419.199
cache size    : 36864 KB
physical id    : 0
siblings    : 2
core id        : 1
cpu cores    : 2
apicid        : 1
initial apicid    : 1
fpu        : yes
fpu_exception    : yes
cpuid level    : 32
wp        : yes
bogomips    : 4838.39
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:

processor    : 2
vendor_id    : GenuineIntel
cpu family    : 6
model        : 183
model name    : Intel(R) Core(TM) i9-14900HX
stepping    : 1
microcode    : 0x122
cpu MHz        : 2419.199
cache size    : 36864 KB
physical id    : 1
siblings    : 2
core id        : 0
cpu cores    : 2
apicid        : 2
initial apicid    : 2
fpu        : yes
fpu_exception    : yes
cpuid level    : 32
wp        : yes
bogomips    : 4838.39
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:

processor    : 3
vendor_id    : GenuineIntel
cpu family    : 6
model        : 183
model name    : Intel(R) Core(TM) i9-14900HX
stepping    : 1
microcode    : 0x122
cpu MHz        : 2419.199
cache size    : 36864 KB
physical id    : 1
siblings    : 2
core id        : 1
cpu cores    : 2
apicid        : 3
initial apicid    : 3
fpu        : yes
fpu_exception    : yes
cpuid level    : 32
wp        : yes
bogomips    : 4838.39
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:


4.1.2.查看内存大小

[root@rocky ~]# free 
              total        used        free      shared  buff/cache   available
Mem:        1997072      230192     1529500        8900      237380     1609908
Swap:       2129916           0     2129916

另一种方式查看内存大小

[root@rocky ~]# cat /proc/meminfo 
MemTotal:        1997072 kB
MemFree:         1529448 kB
MemAvailable:    1609964 kB
Buffers:            3164 kB
Cached:           201124 kB
SwapCached:            0 kB
Active:            99196 kB
Inactive:         166200 kB
Active(anon):       1532 kB
Inactive(anon):    68476 kB
Active(file):      97664 kB
Inactive(file):    97724 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2129916 kB
SwapFree:        2129916 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         61108 kB
Mapped:            82080 kB
Shmem:              8900 kB
KReclaimable:      33200 kB
Slab:              80444 kB
SReclaimable:      33200 kB
SUnreclaim:        47244 kB
KernelStack:        5088 kB
PageTables:         6584 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3128452 kB
Committed_AS:     289604 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:            83968 kB
HardwareCorrupted:     0 kB
AnonHugePages:     12288 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:      137088 kB
DirectMap2M:     1959936 kB
DirectMap1G:           0 kB
 

4.1.3.查看硬盘和分区情况

[root@rocky ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1   10G  0 rom  
nvme0n1     259:0    0  100G  0 disk 
├─nvme0n1p1 259:1    0    1G  0 part /boot
└─nvme0n1p2 259:2    0   99G  0 part 
  ├─rl-root 253:0    0 65.2G  0 lvm  /
  ├─rl-swap 253:1    0    2G  0 lvm  [SWAP]
  └─rl-home 253:2    0 31.8G  0 lvm  /home

[root@rocky ~]# cat /proc/partitions 
major minor  #blocks  name

 259        0  104857600 nvme0n1
 259        1    1048576 nvme0n1p1
 259        2  103808000 nvme0n1p2
  11        0   10465280 sr0
 253        0   68317184 dm-0
 253        1    2129920 dm-1
 253        2   33357824 dm-2

4.1.2.查看系统版本信息

4.1.2.1.查看系统架构

[root@rocky ~]# arch
x86_64
root@ubuntu:~# arch
x86_64

4.1.2.2.查看内核版本

root@ubuntu:~# uname -r
5.15.0-107-generic

[root@rocky ~]# uname -r
4.18.0-348.el8.0.2.x86_64

4.1.2.3.查看操作系统发行版本

#rocky8查看发行版本

[root@rocky ~]# cat  /etc/redhat-release 
Rocky Linux release 8.5 (Green Obsidian)

[root@rocky ~]# cat /etc/os-release 
NAME="Rocky Linux"
VERSION="8.5 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.5 (Green Obsidian)"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:rocky:rocky:8.5:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky Linux"
ROCKY_SUPPORT_PRODUCT_VERSION="8"

#ubuntu查看发行版本

root@ubuntu:~# cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:    22.04
Codename:    jammy
 

4.1.3.日期和时间

#Linux的两种时钟

1.系统时钟:由Linux内核通过CPU的工作频率进行的

2.硬件时钟:通过主板

相关命令:

date:显示和设置系统时间

eg:

root@ubuntu:~# date
Mon Jun 10 03:45:15 PM CST 2024

#显示时区信息

root@ubuntu:~# date -R
Mon, 10 Jun 2024 15:46:07 +0800 

#clouk,hwclock:显示硬件时钟

[root@rocky ~]# clock
2024-06-10 15:46:59.828525+08:00

-s,--hctosys  # 以硬件时钟为准,校正系统时钟

-w,--systohc  # 以系统时钟为准,校正硬件时钟

eg:

 [root@rocky ~]# ll /usr/sbin/clock
lrwxrwxrwx. 1 root root 7 10月 14 2021 /usr/sbin/clock -> hwclock

# 时区
/etc/localtime
# 设置时区
[root@rocky ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
……[root@rocky ~]# timedatectl set-timezone Asia/Shanghai
[root@rocky ~]# timedatectl status
               Local time: 一 2024-06-10 15:49:59 CST
           Universal time: 一 2024-06-10 07:49:59 UTC
                 RTC time: 一 2024-06-10 07:49:59
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

[root@rocky ~]# ll /etc/localtime 
lrwxrwxrwx. 1 root root 35 3月  23 13:45 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

#显示日历

eg:查看2024年6月的日历

[root@rocky ~]# cal 6 2024
      六月 2024     
日 一 二 三 四 五 六
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

4.1.4.关机和重启

# 关机
halt
poweroff
init 0
shutdown -h now

# 重启
reboot
    -f:强制,不调用shutdown
    -p:切断电影
ctrl+alt+del 三个键
init 6
shutdown -r now

# 关机或重启:shutdown
shutdown [OPTION]... [TIME] [MESSAGE]
-r:reboot
-h:halt
-c:cancel
    TIME:无指定,默认相当于+1 (CentOS 7)
    now:立刻,相当于+0
    +#:相对时间表示法,几分钟之后:例如 +3
    hh:mm:绝对时间表示,指明具体时间

4.1.5.用户登录信息查看

# whoami:显示当前登录有效用户
[root@rocky8 even]# whoami
root

#who:系统当前所有的登录会话
[root@rocky ~]# who
root     pts/0        2024-06-05 18:07 (10.0.0.1)
root     pts/1        2024-06-10 07:24 (10.0.0.1)

# w:系统当前所有的登录会话及所做的操作

[root@rocky ~]# w
 07:52:56 up 1 day, 19:18,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         三18    4days  0.01s  0.01s -bash
root     pts/1    10.0.0.1         07:24    0.00s  0.05s  0.00s w
 

4.1.6.文本编辑

# 工具可以实现文本的编辑,上手容易,适合初学者 nano

# 工具是图形工具 gedit

4.1.7.会话管理

命令行的典型使用方式是,打开一个终端窗口,在里面输入命令,用户与计算机的折中临时的交互,称为一次“会话”。
会话的一个重要的特点是:窗口与其中启动的进程是连接在一起的,打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次SSH会话已经终止了,里面的进程也随之消失了。为了解决这个问题,会话与窗口可以“解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话“绑定”其他窗口。
终端服用器软件就是会话与窗口的“解绑”工具,将他们彻底分离。
1.它允许在单个窗口中个,同时访问多个会话。这对于同时运行多个命令行程序很有用。
2.它可以让新窗口“接入”已经存在的会话。
3.它运行每个会话有多个连接窗口,因此可以多人实时共享会话。
4.它还支持窗口任意的垂直和水平拆分。
类似的终端复用器还有screen,tmux

4.1.7.1.screen

利用screen可以实现会话管理,如:新建会话,共享会话等

注意:centos 7来自base源,centos 8来自于epel源

eg:安装screen

[root@rocky ~]# yum install epel-release -y

[root@rocky ~]# dnf -y install screen

# screen 命令常见用法:
1.创建新screen会话
screen -S [SESSION]
2.加入screen会话
screen -x [SESSION]
3.退出并关闭screen会话
exit
4.剥离当前screen会话
ctrl+a,d
5.显示所有已经打开的screen会话
screen -ls
6.恢复某screen会话
screen -r [SESSION]

4.1.7.2.tmux

tmux是一个终端复用器,类似screen,但是更易用,也更强大

tmux就是会话与窗口的“解绑”工具,将他们彻底分开,功能如下

  1. 它允许在单个窗口中,同时访问多个会话
  2. 它可以让新窗口“接入”已经存在的会话
  3. 它允许每个会话有多个连接窗口
  4. 它还支持窗口任意的垂直和水平拆分

安装:

[root@rocky ~]# yum install -y tmux

启动与退出

[root@rocky ~]# tmux
[exited]

4.1.8.输出信息echo

# 语法
echo [-neE] [字符串]
# 字符串
-E    (默认)不支持\解释功能 
-n    不自动换行
-e    启用\字符的解释功能
# 显示变量
echo "$VAR_NAME"    # 用变量值替换,弱引用
echo '$VAR_NAME'    # 变量不会替换,强引用

# 启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a    # 发出警告声
\b    # 退格键
\c    # 最后不加上换行符号
\e    # escape,相当于\033
\n    # 换行且光标移至首行
\r    # 回车,即光标移至行首,但不换行
\t    # 插入tab
\\    # 插入\字符
\0nnn    # 插入nnn(八进制)所代表的ASCII字符
\xHH    # 插入HH(十六进制)所代表的ASCII字符

4.1.8.1.echo基本用法

# 可以显示具有颜色的字符,其格式如下:
"\033[字符背景颜色;字体颜色m字符串\033[0m"
\033[30m -- \033[37m    # 设置前景色
\033[40m -- \033[47m    # 设置背景色

# 字符背景颜色范围:40--47
40    # 黑
41    # 红
42    # 绿
43    # 黄
44    # 蓝
45    # 紫
46    # 深绿
47    # 白色

# 字体颜色:30--37
30    # 黑
31    # 红
32    # 绿
33    # 黄
34    # 蓝
35    # 紫
36    # 深绿
37    # 白色

# 加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:
\033[0m    # 关闭所有属性
\033[1m    # 设置高亮度
\033[4m    # 下划线
\033[5m    # 闪烁
\033[7m    # 反显
\033[8m    # 消隐
\033[nA    # 光标上移n行
\033[nB    # 光标下移n行
\033[nC    # 光标右移n行
\033[nD    # 光标左移n行
\033[x;yH    # 设置光标位置x行y列
\033[2J    # 清屏
\033[K    # 清除从光标到行尾的内容
\033[s    # 保存光标位置
\033[u    # 恢复光标位置
\033[?25l    # 隐藏光标
\033[?25h    # 显示光标
\033[2J\033[0;0H    # 清屏且将光标置顶

4.1.8.2.echo高级用法

在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码可以显示具有颜色的字符,其格式如下:
"\033[字符背景颜色;字体颜色m字符串\033[0m'
1033[30m -033[37m设置前景色
1033[40m -\033[47m设置背景色

#字符背景颜色范围:40--47
40:黑

41:红

42:绿

43:黄

44:蓝

45:紫

46:深绿

47:白色

#字体颜色:30--37

30:黑

31:红

32:绿

33:黄

34:蓝

35:紫

36:深绿

37:白色

加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033 [4m 下划线
\033[5m  闪烁

\033 [7m 反显

\033 [8m 消隐

\033 [nA 光标上移n行

\033[nB 光标下移n行

\033[nc 光标右移n列

\033[nD 光标左移n列

\033[x;yH 设置光标位置x行y列

\033[2J 清屏

\033[K 清除从光标到行尾的内容

\033[s 保存光标位置

\033[u 恢复光标位置

033[?251 隐藏光标

\033[?25h 显示光标

\033[2J\033[0;0H 清屏且将光标置顶

4.1.9.tab键补全

tab键可以实现命令以及路径等补全,提高输出效率,避免出错

4.1.9.1.命令补全

内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
命令的子命令补全,需要安装 bash-completion
注意:用户给定的字符串只有一条唯一对应的命令,直接补全,否则,再次Tab会给出列表

4.1.9.2.路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果唯一:则直接补全
否则:再次Tab给出列表

4.1.9.3.双击tab键
  • command 2Tab 所有子命令或文件补全
  • string2Tab 以string开头命令
  • /2Tab 显示所有根目录下一级目录,包括隐藏目录
  • ./2Tab 当前目录下子目录,包括隐藏目录
  • *2Tab 当前目录下子目录,不包括隐藏目录
  • ~2Tab 所有用户列表
  • $2Tab 所有变量
  • @2Tab /etc/hosts记录(centos7 不支持)
  • =2Tab 相当于ls-A (centos7不支持)


5. 总结linux安全模型

# 资源分派:

1.Authentication:认证,验证用户身份

2.Authorization:授权,不同的用户设置不同权限

3.Accouting|Audition:审计

当用户登录成功时,系统会自动分配令牌token,包括:用户标识和组成员等信息

5.1.用户

Linux中每个用户是通过 User ld (UID) 来唯一标识的

1.管理员: root, 0
2.普通用户: 1-60000 自动分配
3.系统用户: 1-499 (CentOS 6以前),1-999 (Cento 7以后)对守护进程获取资源进行权限分配;
4.登录用户: 500+ (CentOs6以前),1000+ (Centos7以后)给用户进行交互式登录使用

5.2.用户组

Linux中可以将一个或多个用户加入用户组中,用户组是通过Group ID (GID) 来唯一标识的。

1.管理员组: root 0
2.普通组:
    系统组: 1-499 (CentOS 6以前),1-999 (CentOS 7以后),对守护进程获取资源进行权限分配;
    普通组: 500+ (CentOS 6以前),1000+ (CentOS 7以后),给用户使用

5.3.用户和用户组的关系

1.用户的主要组(primarygroup): 用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组。
2.用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组。

# eg:
[root@rocky ~]# id wb
uid=1000(wb) gid=1000(wb) 组=1000(wb)

5.4安全上下文

Linux安全上下文Context: 运行中的程序,即进程(process),以进程发起者的身份运行,进程所能够访问资源的权限取决于进程的运行者的身份。
比如: 分别以root 和wang 的身份运行/bin/cat /etc/shadow,得到的结果是不同的,资源能否能被访问,是由运行者的身份决定,非程序本身。

#eg:

[wb@rocky ~]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
[root@rocky ~]# cat /etc/shadow
root:$6$ERPTsfS.7bP/F6Ju$wkbwYUy6pb5NTGeymCxOPx8DAphJbikfhn4LJitCzX2vT8x.v8zOPLzihAkbY4SSxx8rRW8e.GQFQLO4atZ6/0:19879:0:99999:7:::

6. 总结学过的权限,属性及ACL相关命令及选项,示例。

6.1.文件权限管理

程序访问文件时的权限,取决于此程序的发起者

1.进程的发起者,同文件的属主;则应用文件属主权限

2.进程的发起者,属于文件属组;则应用文件属组权限

3.应用文件“其它“权限

6.2.文件所有者和属组属性操作

6.2.1.设置文件的所有者chown

chown 命令可以修改文件的属主,也可以修改文件属组

# 格式:
chown [OPTION]...[OWNER][:[GROUP]] FILE[OPTION]...
chown [OPTION]... --reference=RFILE FILE...

# 用法说明:
OWNER    # 只修改所有者
OWNER:GROUP    # 同时修改所有者和属组
:GROUP    # 只修改属组,冒号也可用
--reference=RFILE    # 参考指定的的属性,来修改
-R    # 递归,此选项慎用,非常危险

eg:

[root@rocky test]# cp /etc/fstab 1.txt
[root@rocky test]# pwd
/test
[root@rocky test]# ll
总用量 4
-rw-r--r-- 1 root root 655 6月  10 08:26 1.txt
[root@rocky test]# chown wb 1.txt 
[root@rocky test]# chown :admins 1.txt 
[root@rocky test]# ll 1.txt 
-rw-r--r-- 1 wb admins 655 6月  10 08:26 1.txt
[root@rocky test]# chown root.bin 1.txt 
[root@rocky test]# ll
总用量 4
-rw-r--r-- 1 root bin 655 6月  10 08:26 1.txt
[root@rocky test]# chown wb:admins 1.txt 
[root@rocky test]# ll
总用量 4
-rw-r--r-- 1 wb admins 655 6月  10 08:26 1.txt
[root@rocky test]# cp /etc/issue 2.txt
[root@rocky test]# ll
总用量 8
-rw-r--r-- 1 wb   admins 655 6月  10 08:26 1.txt
-rw-r--r-- 1 root root    23 6月  10 08:27 2.txt
[root@rocky test]# chown --reference=1.txt 2.txt
[root@rocky test]# ll
总用量 8
-rw-r--r-- 1 wb admins 655 6月  10 08:26 1.txt
-rw-r--r-- 1 wb admins  23 6月  10 08:27 2.txt
[root@rocky ~]# ll -d /test/
drwxr-xr-x 2 root root 32 6月  10 08:27 /test/
[root@rocky ~]# ll /test/
总用量 8
-rw-r--r-- 1 root root 655 6月  10 08:26 1.txt
-rw-r--r-- 1 root root  23 6月  10 08:27 2.txt
[root@rocky ~]# chown -R wb.admins /test/
[root@rocky ~]# ll -d /test/
drwxr-xr-x 2 wb admins 32 6月  10 08:27 /test/
[root@rocky ~]# ll /test/
总用量 8
-rw-r--r-- 1 wb admins 655 6月  10 08:26 1.txt
-rw-r--r-- 1 wb admins  23 6月  10 08:27 2.txt

6.2.2.设置文件的属组信息chgrp

chgrp 命令可以只修改文件的属组

# 格式:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...

-R 递归

# eg:[root@rocky test]# ll 1.txt 
-rw-r--r-- 1 wb admins 655 6月  10 08:26 1.txt
[root@rocky test]# chgrp root 1.txt 
[root@rocky test]# ll 1.txt 
-rw-r--r-- 1 wb root 655 6月  10 08:26 1.txt
[root@rocky test]# 

6.3.文件权限

6.3.1.文件权限说明

# 文件的权限主要针对三类对象进行定义
owner    属主,u
group    属组,g
other    其他,o

# 注意
1.用户的最终权限,是从左向右进行顺序匹配,即,所有者,所属组,其他人,一旦匹配权限立即生效,不再向右查看其权限
2.r和w权限对root 用户无效
3.只要所有者,所属组或other三者之一有x权限,root就可以执行

每个文件针对每类访问者都定义了三种权限
r    Readable    4
w    Writable    2
x    Excutable    1

# 对文件的权限:
r    # 可使用文件查看类工具,比如: cat,可以获取其内容
w    # 可修改其内容,文件的是否被删除和文件的权限无关
x    # 可以把此文件提请内核启动为一个进程,即可以执行(运行) 此文件(此文件的内容必须是可执行)

# 文件权限常见组合
---    0
r    4
r-x    5
rw    6
rwx    7

# 对目录的权限:
r    # 可以使用ls查看此目录中文件名列表,但无法看到文件的属性meta信息,包括inode号,不能查看文件的内容
w    # 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
x    # 可以cd进入此目录,可以使用ls -l file 或 stat file 查看此目录中指定文件的元数据,当预先知道文件名称时,也可以查看文件的内容,属于目录的可访问的最小权限
X    # 分配给目录或有部分x权限的文件的x权限,对无任意x权限的文件则不会分配x权限

# 目录权限常见组合:
-    不能访问目录
r-x    只读目录
rwx 可读也可写目录

数学法的权限:

八进制数字

--- 000    0

--x 001   1

-w- 010  2

-wx 011  3

r--  100   4

r-x  101  5

rw- 110  6

rwx 111  7

# 举例:

rw-r----- 640

rwxr-xr-x 755

6.3.2.修改文件权限chmod

# 格式
chmod [OPTION] ...MODE[,MODE]... FILE...
chmod [OPTION] ...OCTAL-MODE FILE...
# 参考RFILE文件的权限,将FILE的修改为同RFILE
chmod [OPTION] ...--reference=RFILE FILE...

# 说明: 模式法格式
MODE: who opt permission

who:u,g,o,a
opt:+,-,=
permission:r,w,x

# 修改指定一类用户的所有权限
U= g= o= ug= a= u=,g=

修改指定一类用户某个或某个权限
u+ u- g+ g- o+ o- a+ a- + -

-R: 递归修改权限

# eg: 设置 X 权限

[root@rocky test]# ll dir
总用量 8
-rw-r--r-- 1 root root 655 6月  10 08:43 1.txt
-rw-r--r-- 1 root root  23 6月  10 08:43 2.txt
[root@rocky test]# ll -d dir
drwxr-xr-x 2 root root 32 6月  10 08:43 dir
[root@rocky test]# chmod -R a+x dir
[root@rocky test]# ll -d dir
drwxr-xr-x 2 root root 32 6月  10 08:43 dir
[root@rocky test]# ll dir
总用量 8
-rwxr-xr-x 1 root root 655 6月  10 08:43 1.txt
-rwxr-xr-x 1 root root  23 6月  10 08:43 2.txt
# eg:

chmod u+wx,g-r,o=rx file

chmod-R g+rwx /testdir

chmod 600 file

6.4.新建文件和目录的默认权限

umask 的值可以用来保留在创建文件权限

实现方式:

  • 新建文件的默认权限:666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
  • 新建目录的默认权限:777-umask

非特权用户umask默认是 002
root的umask默认是 022
查看umask

#模式方式显示

umask  -S

#输出可被调用

umask -p

修改umask

umask #

eg:

[root@rocky ~]# umask 0600
[root@rocky ~]# touch 1.txt
[root@rocky ~]# ll
总用量 0
----rw-rw- 1 root root 0 6月  10 08:52 1.txt

6.5.Linux文件系统上的特殊权限

前面介绍了三种常见的权限: r,w,x 还有三种特殊权限: SUID,SGID,Sticky
# 特殊权限:
SUID 作用于二进制可执行文件上,用户将继承此程序所有者的权限
SGID
    作用于二进制可执行文件上,用户将继承此程序所有组的权限
    作用于目录上,此目录中新建的文件的所屈组将自动从此目录继承
STICKY 作用于目录上,此目录中的文件只能由所有者自已来删除

6.5.1.特殊权限SUID

前提: 进程有属主和属组,文件有属主和属组
1.任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
2.启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
3.进程访问文件时的权限,取决于进程的发起者

二进制的可执行文件上SUID权限功能:
1.任何一个可执行程序文件能不能启动为进程: 取决发起者对程序文件是否拥有执行权限
2.启动为进程之后,其进程的属主为原程序文件的属主
3.SUID只对二进制可执行程序有效
4.SUID设置在目录上无意义

# SUID权限设定:
chmod u+s FILE..
chmod 4xxx FILE
chmod u-s FILE...

# eg:
[root@rocky ~]# ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 33544 3月  14 2021 /usr/bin/passwd

6.5.2.特殊权限SGID

# 二进制的可执行文件上SGID权限功能:
1.任何一个可执行程序文件能不能启动为进程: 取决发起者对程序文件是否拥有执行权限
2.启动为进程之后,其进程的属组为原程序文件的属组

# SGID权限设定:
chmod g+s FILE...
chmod 2xxx FILE
chmod g-s FILE...

# 目录上的SGID权限功能:
默认情况下,用户创建文件时,其属组为此用户所属的主组,一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组,通常用于创建一个协作目录。

# SGID权限设定:
chmod g+s DIR...
chmod 2xxx DIR
chmod g-s DIR...

6.5.3.特殊权限 Sticky 位

1.具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
2.在目录设置sticky 位,只有文件的所有者或root可以删除该文件
3.sticky 设置在文件上无意义

# sticky权限设定:
chmod o+t DIR...
chmod1xXX DIR
chmod o-t DIR...

# 范例:
[root@rocky ~]# ll -d /tmp/
drwxrwxrwt. 10 root root 220 6月  10 08:19 /tmp/

6.5.4.特殊权限数字法

SUID SGID STICKY
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

# 范例:
chmod 4777 /tmp/a.txt

# 权限位映射
SUID:user,占据属主的执行权限位
    s:属主拥有x权限
    s:属主没有x权限
SGID:group,占据属组的执行权限位
    s:group拥有x权限
    s:group没有x权限
sticky:other,占据other的执行权限位
    t:other拥有x权限
    T:other没有x权限

6.6.设定文件特殊属性

# 设置文件的特殊属性,可以访问 root 用户误操作删除或修改文件;不能删除,改名,更改
chattr +i file

# 只能追加内容,不能删除,改名
chattr +a file

# 显示特定属性
lsattr

# eg1:
[root@rocky ~]# mkdir dir
[root@rocky ~]# touch dir/1.txt
[root@rocky ~]# touch dir/2.txt

#追加i属性:
[root@rocky ~]# chattr +i dir
[root@rocky ~]# lsattr dir
-------------------- dir/1.txt
-------------------- dir/2.txt
[root@rocky ~]# rm -rf dir/
rm: 无法删除'dir/1.txt': 不允许的操作
rm: 无法删除'dir/2.txt': 不允许的操作
[root@rocky ~]# lsattr 
----i--------------- ./dir

#去掉i属性
[root@rocky ~]# chattr -i dir
[root@rocky ~]# lsattr 
-------------------- ./dir
[root@rocky ~]# rm -rf dir

6.7.访问控制列表ACL

6.7.1.ACL权限功能

ACL: Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
Centos7 默认创建的xfs和ext4文件系统具有ACL功能
Centos7 之前版本,默认手工创建的ext4文件系统无ACL功能需手动增加

tune2fs -o acl /dev/sdb1
mount -o acl /dev/sdb1 /mnt/test

# ACL生效顺序:
所有者,自定义用户,所属组|自定义组,其他人

6.7.2.ACL相关命令

setfacl 可设置ACL权限

getfacl 可查看设置的ACL权限

#eg:
[root@rocky dir]# ll 1.txt 
-rw-r--r-- 1 root root 0 6月  10 09:22 1.txt
[root@rocky dir]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@rocky dir]# setfacl -m u:wb:- 1.txt 
[root@rocky dir]# ll
总用量 0
-rw-r--r--+ 1 root root 0 6月  10 09:22 1.txt
[root@rocky dir]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
user:wb:---
group::r--
mask::r--
other::r--

[root@rocky dir]# su wb
[wb@rocky dir]$ cat 1.txt 
cat: 1.txt: 权限不够
[wb@rocky dir]$ echo 111 >> 1.txt
bash: 1.txt: 权限不够

# mask 权限

1.mask只影响除所有者和other的之外的人和组的最大权限

2.mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission)

3.用户或组的设置必须存在于mask权限设定范围内才会生效

#eg:
[root@rocky dir]# ll 1.txt 
-rw-rw-r--+ 1 root root 0 6月  10 09:22 1.txt
[root@rocky dir]# chmod g=r 1.txt 
[root@rocky dir]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
user:wb:---
group::r--
mask::r--
other::r--

[root@rocky dir]# setfacl -m mask:rw 1.txt 
[root@rocky dir]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
user:wb:---
group::r--
mask::rw-
other::r--

[root@rocky dir]# setfacl -m u:wb:rwx 1.txt 
[root@rocky dir]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
user:wb:rwx
group::r--
mask::rwx
other::r--

[root@rocky dir]# setfacl -m mask:rw 1.txt 
[root@rocky dir]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
user:wb:rwx            #effective:rw-
group::r--
mask::rw-
other::r--
# -set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以
setfacl --set u::rw,u:wang:rw,g::r,o::- file1
[root@rocky dir]# setfacl --set u::rw,u:wb:rw,g::r,o::- 1.txt 
[root@rocky dir]# getfacl 1.txt 
# file: 1.txt
# owner: root
# group: root
user::rw-
user:wb:rw-
group::r--
mask::rw-
other::---

7.结合vim几种模式,学会使用vim几个常见操作。

7.1.如何打开文件。并在打开文件(命令模式)之后如何退出文件。

7.1.1.vim命令格式

# 格式:
vim [OPTION]... FILE...

# 常用选项:
+#    # 打开文件后,让光标处于第#行的行首,+默认行尾
+/PATTERN    # 让光标处于第一个被PATTERN匹配到的行行首-b file 二进制方式打开文件
-d filel file2...    # 比较多个文件,相当于 vimdiff
-m file        # 只读打开文件
-e file        # 直接进入ex模式,相当于执行ex file
-y file        # Easy mode (like"evim",modeless),直接可以操作文件,ctrl+o:wqlq! 保存和不保存退出

# 说明:
1.如果该文件存在,文件被打开并显示内容
2.如果该文件不存在,当编辑后第一次存盘时创建它

7.1.2.三种主要模式和转换

vim 是一个模式编辑器,击键行为是依赖于 vim的的“模式

# 三种常见模式:
1.命令或普通(Normal)模式: 默认模式,可以实现移动光标,剪切/粘贴文本
2.插入(Insert)或编辑模式: 用于修改文本
3.扩展命令(extended command) 或命令(末)行模式: 保存,退出等

# 命令模式-->插入模式
i    insert,在光标所在处输入
I    在当前光标所在行的行首输入
a    append,在光标所在处后面输入
A    在当前光标所在行的行尾输入
o    在当前光标所在行的下方打开一个新行
O    在当前光标所在行的上方打开一个新行

# 插入模式--- ESC----->命令模式
# 命令模式----:----> 扩展命令模式
# 扩展命令模式----ESC,enter----> 命令模式

# 范例: 插入颜色字符
1 切换至插入模式
2 按ctrl+v+[ 三个键,显示^[
3 后续输入颜色信息,如:^[[32mhe11o^[[Om
4 切换至扩展命令模式,保存退出
5 cat 文件可以看到下面显示

eg:

7.2.打开文件(命令模式)之后,进入插入模式。并在插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。

插入模式--->ESC--->命令模式

命令模式---->wq(q),回车---->退出文件

7.3.打开文件(命令模式)之后,进入插入模式,编写一段话,““马哥出品,必属精品””, 之后从插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。

#过程:

编辑文件--->命令模式--->插入模式--->插入内容--->ESC--->命令模式--->wq,回车--->退出文件

7.4.使用cat命令验证文件内容,是刚刚自己写的内容。

本文地址:https://www.limyvps.com/news/26_46517.html