马哥教育74期Linux云计算SRE-第02周作业
N74072-北京-岳帅
1. 总结linux安全模型。
答:资源分派:简称A,A,A (认证:验证用户身份,授权:不同的用户设置不同的权限,审计),当用户登录成功时,系统会自动分配令牌token,包括:用户标识和组成员等信息
用户:Linux中每个用户是通过Userld(UID)来唯一标识的
用户组:Linux中可以将一个或多个用户加入用户组中,用户组是通过Group ID(GID)来唯一标识的
用户和组的关系:用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,由于此组只有一个用户,又称为私有组
用户的附加组:一个用户可以属于零个或多个辅助组,附加组
安全上下文:Linux安全上下文:运行中的程序,即进程,以进程发起者的身份运行,进程所能够访问资源的权限取决于进程的运行者的身份;资源能否能被访问是由运行者的身份决定,非程序本身
2. 总结学过的权限,属性及ACL相关命令及选项,示例。
答:chmod修改文件权限命令
chmod who opt per file
who:u所有者,g所属组,o其他人,a所有人
opt:+增加,-减去,=赋予
per:r读,w写,x执行
数字法:
rwx 7 r-x 5 --- 0
r-- 二进制对应100,使用十进制表示对应4
-w- 二进制对应010,使用十进制表示对应2
--x 二进制对应001 使用十进制表示对应1
ACL:实现灵活的权限管理,除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
ACL第四类设置权限:setfacl -m修改 u:用户:什么权限 什么文件;getfacl 文件名 可以查看设置好的权限;清理权限 setfacl -b选项 文件名
3. 结合vim几种模式,学会使用vim几个常见操作。
答:vim三种常见模式:命令或普通模式:默认模式,可以实现移动光标,剪切/粘贴文本
插入或编辑模式:用于修改文本
扩展命令或命令末行模式:保存,退出,搜索,搜索替换等
按a:在光标所在处后面输入进插入模式;按ESC进命令模式;命令模式按:进扩展命令模式;扩展命令模式按ESC或enter进命令模式
1)如何打开文件。并在打开文件(命令模式)之后如何退出文件。
答:vim 文件名; 按:扩展命令模式中 wq保存退出;q!不保存退出
2)打开文件(命令模式)之后,进入插入模式。并在插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。
答:vim 文件名;按a:在光标所在处后面输入进插入模式,按ESC回命令模式,按:q!不报错退出,wq保存退出
3)打开文件(命令模式)之后,进入插入模式,编写一段话,"马哥出品,必属精品", 之后从插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。
答:vim 文件名,按a:在光标所在处后面输入进插入模式输入马哥出品,必属精品,按ESC回命令模式,按:wq保存退出




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

5)(可选),命令模式下,光标在单词,句子上进行前后,上下跳转。行复制粘贴。行删除。
答:h:左,L:右,j:下,k:上
w:下一个单词的词首,e:当前或下一单词的词尾,b:当前或前一个单词的词首
)下一句,( 上一句
yy:行复制,p:粘贴,dd:行删除
4. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例。
答:grep命令主要对文本的(正则表达式)行基于模式进行过滤
格式:grep [options] pattern [file...]
[root@rocky8 ~]# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
sed:不交互的文本编辑工具
格式:sed [option]... 'script script...' [inputfile...]
SELINUX=disabled
[root@rocky8 ~]# sed -i '/^SELINUX=/c SELINUX=enforcing' /etc/selinux/config
SELINUX=enforcing
printf:相当于增强版的echo,实现丰富的格式化输出
格式:printf "指定的格式" "文本1" "文本2"...
# %-10s 表示宽度10个字符,左对齐
[root@rocky8 ~]# printf "%-10s %-10s \n" name age Yue man
name age
Yue man
find:实时查找工具,通过遍历指定路径完成文件查找
格式:find [option]... [查找路径] [查找条件] [处理动作]
# 实时查找以PATTERN匹配整个文件路径,而非文件名称,以.开头以.txt结尾
[root@rocky8 ~]# find -regex "^.*\.txt$"
./.cache/tracker/db-version.txt
./.cache/tracker/db-locale.txt
./.cache/tracker/parser-version.txt
./.cache/tracker/locale-for-miner-apps.txt
./.cache/tracker/last-crawl.txt
./.cache/tracker/first-index.txt
5. 总结文本处理的grep命令相关的基本正则和扩展正则表达式。
答:. 匹配单个字符(除了\n),可以是一个汉字或其它国家的文字
[ ] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z]
[^] 匹配指定范围外的任意单个字符,示例:[^wang]
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z,a-z
[:lower:] 小写字母,示例:[ [:lower:] ],相当于[a-z]
[:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 包括空格,制表符(水平和垂直),换行符,回车符,等各种类型的空白,比[:blank:]包含的范围广
[:cntrl:] 不可打印的控制字符(退格,删除,警铃...)
[:digit:] 十进制数字
[:xdigit:] 十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
* 匹配前面字符任意次
? 0或1次
+ 1次或多次
{n} 匹配n次
{m,n} 至少m,至多n次
^ 行首
$ 行尾
\<,\b 语首
\>,\b 语尾
() 分组
| 或者 a|b #a或b C|cat #C或cat (C|c)at #Cat或cat
6. 总结变量命名规则,不同类型变量(环境变量,位置变量,只读变量,局部变量,状态变量)如何使用。
答:区分大小写,不能使程序中的保留字和内置变量,如:if,for,只能使用数字,字母及下划线,且不能以数字开头,注意:不支持短横线"-",和主机名相反
环境变量生效范围为当前shell进程及其子进程;
位置变量在bash shell中内置的变量,在脚本代码中调用通过命令行传递给脚本的参数;($1,$2)
只读变量只能声明定义,但后续不能修改和删除,即常量;
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量;
状态变量进程执行后,将使用变量$?保存状态码的相关数字,不同的值反应成功或失败,$?取值范围0-255,$?的值为0代表成功,$?的值是1到255代表失败;
7. 通过shell编程完成,30鸡和兔的头,80鸡和兔的脚,分别有几只鸡,几只兔?
答:
8. 结合编程的for循环,条件测试,条件组合,完成批量创建100个用户。
答:
1)for遍历1..100
答:
2)先id判断是否存在
答:
3)用户存在则说明存在,用户不存在则添加用户并说明已添加。
答:
9. 磁盘存储术语总结: head, track, sector, sylinder。
答:head:磁头 磁头数=盘面数;
track:磁道 磁道=柱面数;
sector:扇区,512bytes;
cylinder:柱面 1柱面=512*sector数/track*head数=512*63*255=7.84M
10. 总结MBR,GPT结构。
答:MBR(Master Boot Record),中文意为"主引导区记录"。硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为三个部分。
第一部分为pre-boot区(预启动区),占446字节
第二部分是Partition table区(分区表),占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中
第三部分是magic number,占2个字节,固定为55AA
MBR分区表的硬盘最多能划分4个主分区磁盘或3个主分区和扩展分区,并且MBR最大仅支持2TB的硬盘,但拥有最好的兼容性。
GPT(GUID Partition Table),中文意为“全局唯一标识磁盘分区表”。GPT意为GUID分区表,这是一个正逐渐取代MBR的新标准,它由UEFI辅住而形成的,这样就有了UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。这个标准没有MBR的那些限制。磁盘驱动器容量可以大得多,大到操作系统和文件系统都没法支持。它同时还支持几乎无限个分区数量,限制只在于操作系统,Windows支持最多128个GPT分区。通过UEFI,所有的64位的win10,win8,win7和Vista,以及所对应的服务器都能从GPT启动。
GPT分区表类型,此分区表类型不受分区个数、硬盘大小的限制(Windows系统最多只允许划分128个分区),最大支持18EB 大容量(EB=1024 PB,PB=1024 TB),而且GPT是一种新的硬盘分区标。
11. 总结学过的分区,文件系统管理,SWAP管理相关的命令及选项,示例fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff
答:fdisk是一个创建和维护分区的命令,常用用法:fdisk [选项] <disk> 改变分区,fdisk [选项] -l <disk> 列出所有分区
parted [选项] [设备] [指令] 将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行
mkfs(英文全拼:make file system)命令用于在特定的分区上建立 linux 文件系统。
tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。
xfs_info命令用来查看xfs文件系统的具体信息。其中该命令的装载点参数是装载文件系统的目录的路径名。必须装入文件系统才能进行增长文件系统的现有内容不受干扰,并且添加的空间可用于其他文件存储。 语法格式:xfs_info [挂载点] | [设备文件名]
fsck(file system check)用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
mount [选项] [磁盘或分区的设备名] [载入点]
umount 命令可以卸载已经挂载的文件系统。umount [选项] [目录|设备]
swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存。
swapoff命令用于关闭指定的交换空间(包括交换文件和交换分区)。swapoff实际上为swapon的符号连接,可用来关闭系统的交换区。
12. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。
答:RAID0:最少需要1块磁盘组成,但是1块磁盘没有意义;数据条带化分散存储到所有磁盘中;不需要进行数据镜像备份和数据校验运行,存储性能最佳;无数据冗余策略,磁盘组任一磁盘失效会导致整个逻辑磁盘的数据无法正常访问,数据安全保护能力不高;磁盘空间利用率:100%
RAID1:最少需要2块磁盘组成;通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据;提供了很高的数据安全性和可用性,当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据;磁盘空间利用率:50%
RAID5:最少需要3块磁盘;把业务数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上;当一个数据盘故障时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据;磁盘空间利用率:N-1
RAID1+0:最少需要4块磁盘;先创建2个独立的RAID1,再把两个独立的RAID1组成一个RAID0;既提供数据镜像存储能力,又提供数据条带化分布,性能和安全均最优;只要不是一对磁盘坏就可以;磁盘空间利用率:50%
RAID0+1:最少需要4块磁盘;先创建2个RAID0 再用这两个RAID0组建一个RAID1;只能在坏在同一个RAID0中,不允许两个RAID0都有坏盘;磁盘空间利用率:50%
RAID10和RAID01均综合了RAID0和RAID1优缺点。降低了RAID1的高安全性,弥补了RAID0的不足;降低了RAID0的高速和磁盘利用率,弥补了RAID1的不足。
13. 完成不影响业务对LVM磁盘扩容及缩容示例。
答:创建逻辑卷示例:
alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'
lsblk
scandisk
lsblk
fdisk /dev/sdb---n---p---默认回车---默认回车---+5G---分区要改ID t---8e---p---w
lsblk
pvs
pvdisplay
pvcreate /dev/sd{b1,c}
pvs
vgs
vgcreate -s 16M testvg0 /dev/sdb1 /dev/sdc
vgdisplay
pvs
lvdisplay
lvs
lvcreate -L 6G -n lv-mysql testvg0
lvs
mkfs.ext4 /dev/testvg0/lv-mysql
blkid
mkdir /data/mysql
vim /etc/fstab(永久挂载文件)
mount -a
df -h
ls /data/mysql
扩容:
lvextend -r -l +100%free /dev/testvg0/lv-mysql
df -h
lvs
vgs
lsblk
fdisk /dev/sdb
pvcreate /dev/sdb2
pvs
vgextend rl /dev/sdb2
vgs
lvs
df -h
lvextend -r -L +10G /dev/mapper/rl-root
df -h
缩减:
umout /data/mysql
lvreduce -L 8G -r /dev/testvg0/lv-mysql
mount /dev/testvg0/lv-mysql /data/mysql/
df -h
lvs

浙公网安备 33010602011771号