第二周作业

1. 总结linux安全模型

  Linux安全模型的资源分派是由认证(Authentication)授权(Authorization)审计(Accouting|Audition)的方式实现资源的分派,当一个用户成功登录时系统会自动分配一个令牌token,包含用户表示和组成员等信息。


  当一个用户登录了Linux,系统会通过给用户发送User ID (UID)类似身份证号的数字ID,来去认证识别用户,不同的UID代表不同的用户,其中root用户分配UID为0,普通用户则会自动分配1-60000,其中系统用户:1-499(Centos6之前),1-999(Centos7之后)的UID。当一个或者多个用户加入用户组时,系统会通过发放Group ID (GID)来去标识组里各个成员的用户组ID,root组GID分配为0,普通组分配为500之后(Centos6之前),1000以后(Centos7以后)给用户使用。


  用户和组之间的关系分为两种:
1.用户和主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,作为用户的主要组,由此组中只有一个用户,又称为私有组。


2.用户的附加组:一个用户可以属于零个或多个辅助组,附属组。
  Linux当中的程序,进程,以及进程发起者的身份运行,能访问的资源权限取决于进程的运行者的身份。


  其用户的权限授权分别以可读(r)可写(w)可执行(x)的使用方式赋予使用者相应的操作权限,来去保证系统的安全。

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

Linux的权限分为三种:常规权限,特殊权限以及特殊属性
常规权限分为:
r(可读)w(可写)x(可执行)

其中在Linux权限下,分别可以为所有者,所属组,其他组设置相应的权限:
- rwx                     r-x                          r-x
   u (所有者)         g(所属组)      o(其他组)

设置权限的方式为两种,一种通过二进制转换八进制的计算,输入数字来去属于权限:

每一个权限的二进制分别对应数字为:
r- -   = 100   
- w - =010  
- - x  = 001   
- - -   =0      

二进制转换为二进制对应的数字为:
r=4
w=2
x=1
-=0  
为三个组赋予相应的权限对应数字为:
rwx=7  (4+2+1)
rw-=6    (4+2+0)
r-x=5     (4+0+1)

赋予权限的操作命令:chmod [可选项] <mode> <file...>

示例:
为文件创建所有rwx权限:
chmod 777 ceshi.txt

为所有者创建所有权限,所属组和其他组只创建r-x属性
chmod 755 ceshi.txt

只有所有者对文件持有所有权限,所属组和其他组没有任何权限:
chmod 700 ceshi.txt

另外一种赋予权限的方式通过-=+直接赋予u、g、o相应的权限:

示例:
为所有者创建所有权限,所属组和其他组只创建r-x属性
chmod u=rwx,g=r-x,o=r-x  ceshi.txt

以下是Linux的特殊权限:


SUID:作用于二进制可执行文件上,用户执行此程序时将继承此程序所有者的权限
去掉程序的SUID权限 chmod u-s /usr/bin/cat 增加权限chmod 4755 /usr/bin/cat

SGID:作用于二进制可执行文件上,用户执行此程序时将继承此程序所有组的权限
作用于目录上,此目录中新建的文件的所属组将自动从此目录继承

SGID 增加权限chmod 2755 /usr/bin/cat

Sticky:作用于目录上,此目录中的文件只能由所有者自己来删除
t粘滞位 chmod 1755 /tmp 

特殊属性:


设置文件特殊属性,可以访问root用户,防止误操作或修改文件(也就是限制root用户操作)
chattr和lsattr
示例:
不能删除 不能改名 不能修改
Chattr +i 文件名

只能追求加内容 不能删除 不能改名
Chattr +a 文件名
 

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


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

vim rwx.txt 回车 之后就会打开文件


在文件命令模式下输入 ”:q “是退出文件,输入”:wq“是保存并退出文件,输入”:q!“是强制退出文件

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

在命令模式下,输入a,i,o都可以进入到插入模式下,在插入模式按一下ESC键,就会退回到命令模式,同时输入”:q“将退出文件

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

 

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


5)(可选),命令模式下,光标在单词,句子上进行前后,上下跳转。行复制粘贴。行删除。
在命令模式下,输入u和w键会在单词间跳转
w:跳入到下一个单词的词首
e:跳入到下一个单词的词尾
b:跳入当前或前一个单词的词首
H:页首
M:页中间
L:页尾
zt:将光标移动到屏幕的顶端
zz:将光标移动到屏幕的中间‘
zb:将光标移动到屏幕的低端
^:调至行首
0:跳转至行首
$:跳转至行尾
hjkl分别是左下上右句子间跳转

yy:复制光标所在当前行

n+yy:复制所在当前行以及n+一下几行

p:粘贴所在当前行

dd:删除所在当前行

n+dd:删除所在当前行以及n+一下几行

4. 总结学过的文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例

touch 创建普通文件 


cat 看完文件内容


tac 将文件的内容从后往前的倒着输出一次 

more 查看文件内容,支持翻页(只能往下查看,不能往上查看)
less 同样也是查看文件内容,但是支持的功能比较多一些,支持文件搜索,滚动,上下翻页等。


head 默认输出文件开头的前10行,但是也支持输出特定的前几行


tail  默认输出文件后面的倒数10行,同时也支持也支持输出文件内容的后几行

文件查找工具 find 
find命令可以匹配指定目录下对应的文件或者目录,匹配的条件可以是名称,类型,大小,权限等。匹配到文件之后还可以做一些后续的工作

find按文件名搜索:

find 搜索路径 [选项] 搜索内容

在当前目录下根据文件的小大来去搜索文件:

根据文件的类型来去搜索文件

使用通配符匹配文件

文件处理三剑客 grep sed 
grep是处理文本工具的三剑客之一,主要以逐行的方式读入数据,一行一行的对文本中的内容进行匹配
grep [参数] [匹配模式] [文本路径]

-v:排除

grep -v “#” /etc/fstab


-n:显示行号


-c:统计次数


-e:两个搜索结果同时显示


-w:只找对应的单词,不着包含所要搜索的其他字母
-o:只显示搜索的结果


字符匹配
. :匹配任意单个字符(除了\n),可以是一个汉字或其他国家的文字
[]:匹配指定范围内的任意单个字符,
[^]:匹配指定范围外的任意单个字符

匹配次数:
*:匹配前面的字符任意次,也包括0次,贪婪模式:尽可能长的匹配
.*:任意长度的任意字符
\?:匹配前面的字符出现0次或者1次,即:可有可无 (grep ‘go?gle’ test.txt)
\+:匹配其前面的字符出现最好1次,即:肯定有且一个以上
\{\n}:匹配指定数量 (grep ‘go\{8\}gle’ test.txt) “\”转义符

也可对位置锚定
^     行首锚定定,用于模式的最左侧 
排除 grep -v ‘^#’ /etc/fastab  

 找root开头的行grep ‘^root’ /etc/passwd


$    行尾锚定,用于模式的最右侧

sed可以逐行对文本中的内容进行交互式的插入,删除或者替换。
Sed [选项] [sed自己的语言语法处理逻辑] [处理的文件名]

-n 表示安静模式,不输出不匹配的行
-r 识别扩展正则
-i 直接对原文件进行编辑
-e 识别多个命令操作

p 输出信息
i insert,指定信息前插入信息
a append指定信息后追加新的信息
d delete删除指定信息
s substitute替换信息
c 替换一整行信息
g 实现逐个替换

示例:

只显示第三行的打印输出

只输出#开头的行

SED替换成WED

sed -i ‘/SED/c WED‘ /etc/passwd

搜索root 并替换成ROOT

sed -i 's/root/ROOT/g' /etc/passwd

5. 总结文本处理的grep命令相关的基本正则和扩展正则表达式

grep [参数] [匹配模式] [文本路径]
-v:排除 grep -v “#” /etc/fstab
-n:显示行号
-c:统计次数
-e:两个搜索结果同时显示 grep -e false -e bash /etc/passwd
-w:只找对应的单词,不着包含所要搜索的其他字母
-o:只显示搜索的结果
字符匹配
. :匹配任意单个字符(除了\n),可以是一个汉字或其他国家的文字
[]:匹配指定范围内的任意单个字符,
[^]:匹配指定范围外的任意单个字符

匹配次数:
*:匹配前面的字符任意次,也包括0次,贪婪模式:尽可能长的匹配
.*:任意长度的任意字符
\?:匹配前面的字符出现0次或者1次,即:可有可无 (grep ‘go?gle’ test.txt)
\+:匹配其前面的字符出现最好1次,即:肯定有且一个以上
\{\n}:匹配指定数量 (grep ‘go\{8\}gle’ test.txt) “\”转义符

6. 总结变量命名规则,不同类型变量(环境变量,位置变量,只读变量,局部变量,状态变量)如何使用


变量命名的规则要求

区分大小写
不能使用程序中的保留字和内置变量:如if ,for
只能使用数字,字母下划线,且不能数字开头,注意:不支持短横线“-”,和主机名相反
见名知意,用英文单词命名,并体现出实际作用,不要简写如:ATM
变量名大写
局部变量名小写
函数名小写
大驼峰 :由单词组成,且每个单词的首字母是大写,其他小写
小驼峰 :每个单词的首字母是大写,第一个单词首字母,小写,但后续是大写

环境变量:也可以称作为全局变量,当用户登录系统当中时,这些变量就已经在系统当中定义好了相应的参数,提供给系统调用。环境变量使用时需要先通过export或者declare -x事先进行声明,此环境变量才可以使用。

echo $PATH

位置变量:在Linux当中,每一个命令行都有各自的位置参数,可以通过调用命令行的位置参数,来去传递给脚本,提脚本灵活使用。

bash a.sh a b c

只读变量:设置完成的变量只能读取,不能修改和删除。

readonly [选项] [变量名=变量值]

局部变量:自己定义好一个变量,可以随时修改,删除,使用。之后变量只在当前shell的进程环境下生效。

a=b

echo $a

状态变量:状态变量就是系统当中设定好的一类特殊变量,用户只能使用,但是不能够修改删除。例如:
    $*:表示所有位置参数的内容看成一个整体返回      返回所有          
    $@:表示所有位置参数的内容分割成n份,每份作为一个独立的个体返回   返回所有  
    $?:表示前一条命令执行后的返回状态,返回值为 0 表示执行正确,返回任何非 0值均表示执行出现异常
    $#:表示命令行中位置参数的总个数
    $0:表示当前执行的脚本或程序的名称     当前脚本的名字
    $$:当前bash的进程id    
    $!:  后台任务最后一个id

7. 通过shell编程完成,30鸡和兔的头,80鸡和兔的脚,分别有几只鸡,几只兔?


先使用80个脚减去30个鸡头和30个兔头,也就得出了20个鸡的结果,兔子比鸡多出两只脚那就再乘以2所得的结果也就是兔子的数量。

8. 结合编程的for循环,条件测试,条件组合,完成批量创建100个用户
1)for遍历1..100
2)先id判断是否存在
3)用户存在则说明存在,用户不存在则添加用户并说明已添加。


#!/bin/bash
for i in {1..100}; do
        grep "user$i" /etc/passwd &> /dev/null
        if[ $? -ne 0 ];then
                useradd user$i &> /dev/null
                echo "用户创建成功:user"$i
        else
                echo "用户创建失败,用户已存在:user"$i
done

9. 磁盘存储术语总结: head, track, sector, sylinder

head:磁头 每一个盘面都有一个磁头,用来读写数据。
track:磁道 每一个磁盘都会被划分成很多个同心圆,每个由内向外的同心圆的轨道叫做磁道
sector:扇区 将每一个盘面的磁道由内而外划分成若干个内角的扇形,每个磁道划分的扇形圆弧就叫做扇区
sylinder:柱面 每个磁道上各个位置上的磁道的集合形成的柱面,叫做柱面。

10. 总结MBR,GPT结构


MBR分区被称作为传统分区,其分区表的结构为:主分区,扩展分区,逻辑分区三种结构。
1.MBR主分区只能分4个,超过4个就不能被分区了,只能分出三个主分区,一个扩展分区,通过扩展分区在分逻辑分区。
2.在扩展分区中可以分出多个逻辑分区,逻辑分区的数量没有限制。
3.MBR使用的是32位标识扇区,里面的任何分区,包括主分区扩展分区,逻辑分区,都不能够超过2T,使得MBR不能很好的处理大容量硬盘。
4.UEFI不支持MRB分区,因为UEFI是近年的新技术,UEFI主要支持GPT的分区。只能够使用Bios的主板硬件才可以支持MBR分区。


GTP分区表,全部都是可以进行主分区的,没有扩展分区逻辑分区的概念。
1.GTP分区表支持64位8z空间,支持128个分区,作为物理硬盘是足够使用了
2.GTP每个分区表最大容量是1,048,576TB,足够用户使用了
3.GTP分区表支持UEFI模式,使用老旧的Bios容易出现兼容性的问题。

11. 总结学过的分区,文件系统管理,SWAP管理相关的命令及选项,示例
fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff

fdisk:管理MBR分区,分配分区大小,查看分区

parted:可以查看分区表信息,硬盘大小,硬盘参数,扇区大小等

mkfs:格式化,为分区写入系统

tune2fs:用于管理文件系统

xfs_info:查看xfs设备的详细信息

xfs_info /dev/vda1

fsck:检查并修复文件系统

fsck /dev/sdb

mount:挂载硬盘,同步硬盘

mount /dev/sdb1 /tmp

umount:取消硬盘挂载点

umount /dev/sdb1

swapon:启用Linux系统的交换分区或交换文件(虚拟内存)

swapon /dev/sda5

swapoff:关闭系统交换分区

swapoff /dev/sda5

12. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现

RAID0:至少需要一块硬盘,如果在两块硬盘共同协作的情况下,每块硬盘各储存50%的数据,利用率达到100%,无冗余性,如果其中一块硬盘损坏,另外的一个硬盘的数据也就无效了。一块硬盘也可以做RAID阵列,但是效果意义不大,之后可以再加入其他硬盘。

RAID1:至少需要两块硬盘,可以实现容错性,镜像操作。因为两块硬盘是镜像的关系,当文件要写入RAID1时,文件会写入到磁盘1,同时也会把写入的数据复制到磁盘2,以此达到镜像的操作。因为是镜像的关系,磁盘利用率只是用了50%,有冗余性,读取性能增强,写入性能低下,空间利用率低。两个硬盘同时操作同样的文件,如果其中一个硬盘删除掉了之后,另外的一个硬盘的数据也就被删除掉了。镜像的操作代替不了传统的备份,但是两个硬盘可以同时的读数据。

RAID5:至少需要三块硬盘,每次数据写入到阵列当中会把校验信息存放到每一个磁盘当中,如果有N块硬盘,数据将会分成N分,并发到N块硬盘当中,当其中一块硬盘损坏之后,可以通过奇数的校验信息,恢复损坏的其中一块硬盘的数据,只能允许损坏一块硬盘。

RAID10:RAID10是由RAID1和RAID0两种阵列组成,至少需要四块硬盘,先去通过建立RAID1实现镜像,之后再通过RAID0实现条带存放。当输入写入RAID阵列中时,数据将会以条带的存放方式存放到以两个RAID1组成的RAID0的硬盘当中,随后两个RAID1再将数据进行双磁盘的镜像。RAID10和RAID01的区别在于,RAID10时先条带存放之后再镜像也就是1+0,而RAID01则是,先镜像,再通过条带存放也就是0+1.

13. 完成不影响业务对LVM磁盘扩容及缩容示例

扩容

首先查看LVM是否存在使用,以及卷组的可扩容空间

使用命令vgs或者vgdisplay

接着使用lvs 或者 lvdisplay查看LVM

之后输入命令进行扩容,对空间以及文件系统同时扩容

lvextend -r -l +100%free /dev/testvg0/lv-mysql

-l 增加磁盘的内存选项

-r 文件系统以及容量同时扩容

缩容

先去卸载硬盘的挂载点

umount /data/mysql

之后通过命令进行缩容

lvreduce -L 5G -r /dev/testvg0/lv-mysql

最后将缩容的硬盘重新挂载

mount /dev/testvg0/lv-mysql /data/mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值