第二周作业

1. 总结linux安全模型

①用户登录系统时必须提供用户名和密码。

②使用用户和用户组来控制使用者访问文件和其他资源的权限。

③系统上的每一个文件都一定属于一个用户(一般该用户就是文件的创建者)并与一个用户组相关。

④每一个进程(处理程序)也都会属于一个用户和用户组相关联。可以通过在所有的文件和资源上设定权限来只允许该文件的所有者或者某个用户组的成员访问它们。

资源分派:

Authentication:认证,输入用户密码,此时明文的密码通过加密算法如sha256,变成一串字符串,然后与shadow文件存放的密码字符串比较,相同则验证成功

Authorization:授权,在认证成功后,不同用户的权限不一样

Accouting|Audition:审计,授权后并不是可以在权限内为所欲为,而是操作行为需要审计

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

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

1.linux中用户的权限有rwx,读,写,执行三种权限

文件的属性又按照不同层级的用户有不同的文件权限属性

注:文件与目录的rwx含义不同,文件是可读可写可执行,目录的是:(w,在目录中创建删除文件的权限,r,可以ls看到文件名,但是看不到元数据,这里推测是目录也分数据与元数据,目录的数据block部分仅仅是存的文件名与innode的映射关系,可读权限,只能读到这里,x权限,相当于顺着文件与innode映射过去,查看到了完整的文件信息,完整的元数据与文件内容查看需要x权限才能实现,权限掩码umask中,目录默认都加上了x权限

前三个是文件所属主的权限,中间是同组的其他用户权限,最后三个是其他用户的权限

2.三个特殊权限,SUID(执行程序时权限是程序的属主来赋予的),SGID(执行程序时权限是程序的属组来赋予的,还可以用在目录上,创建一个协作目录),STICKY(作用于目录上,此目录中的文件只能由所有者自已来删除)

chattr与lsattr,因为常规的rw权限对root无效,如果想要root用户都无法修改文件,那就可以使用chattr

3.

linux中,acl用于只对这个用户开关权限,传统权限做不到,传统的只能针对 UGO,三种。


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


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

:q退出

:q!强制退出

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

命令模式按i进入插入模式,插入模式按esc键回到命令模式,命令模式按:wq退出
3)打开文件(命令模式)之后,进入插入模式,编写一段话,"马哥出品,必属精品", 之后从插入模式中如何回到打开文件的状态(命令模式),并在命令模式之后如何退出文件。
4)使用cat命令验证文件内容,是刚刚自己写的内容。
5)(可选),命令模式下,光标在单词,句子上进行前后,上下跳转。行复制粘贴。行删除。

光标切换行首行尾习惯用键盘上HOME键与END键,命令模式下dd删除行

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

文本处理工具:

hexdump:可以二进制形式查看文件,在查看,备份,恢复分区表的时候很有用

cat,文件打印到屏幕上,支持标准输入,cat > file 可以在屏幕上输入数据到文件中,后面可以跟上<EOF,结束标识符,不跟的话 cat > file 直接输完ctrl+c结束

more:一页页的打印信息

less:比more更丰富,支持上下翻页

tail:显示尾部数据,tail -f 可以动态看到日志数据刷新情况

head:显示头部数据

sort与uniq,一个排序一个去重,可以用来统计日志中比如某某ip的访问次数

文件查找工具:

locate,自己生成一个索引数据库,数据库会有时效性要求,查的速度很快

find:查的最准,用法 find  /  -name *aaa*

文本处理三剑客

grep,

可以根据关键字来获取文件中的信息,

加上-n,显示在哪一行

-v,反选

^行首,$行尾 ,^$,空行,可以配合-v来去掉配置文件中的空行与注释

-A # after, 后#行

-B # before, 前#行

-C # context, 前后各#行

-i 忽略字符大小写

这里注意,对文件名操作用的是文件通配符,find命令就需要用文件通配符,grep用的是正则表达式,两个有所不同

awk

awk其实是一个程序语言,程序放在‘’里面,比如‘{print $1}’

awk也是逐行处理,不管几个空格,awk默认都算一个分隔符

-F“%”指定分隔符

{print $1" ==="$2 },自己筛出来的===隔开

常见用法是

df -h|awk '{print $5}'

sed

sed最大的优势是匹配到之后能对文件直接进行修改,修改需要加上-i,

如sed -i '/^SELINUX=/c SELINUX=enforcing' /etc/selinux/config

///,分界符,如果里面也有/的需要加\转义,可以采用其他分界,如#

printf用法

printf最核心的就是用来格式化文本输出,用法与c语言类似


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

匹配次数

*,与文件匹配的不一样 前面字符出现任意次

ab* 等价于 a ab abb abbbb

.* 任意字符,可以是空,任意字符

\? ,表示前面字符一个或者0个

\+ ,至少一个及以上

\{n\} 匹配n次 egerp后 {n}

\{m,n\}, 匹配至少m,至多n {m,n}

\{m,\},匹配至少m次 {m,}

位置锚定

^

$

^$,空行

\< 匹配单词词首 字母数字下划线算单词的一部分

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

命名规则:变量由数字字符下划线组成,不能数字打头。不支持短横线"-",和主机名相反,命名是不要与系统的自有变量和特殊词语如if,for重复,最好命名简明能看懂变量用途,如Age,Name这种。

环境变量,能被shell子进程继承的变量   export xxxx ,持久化建议放在/etc/profile文件中,source 此文件生效

位置变量,外部命令行输入给shell脚本的参数,$1 $2这样

只读变量只能声明定义,但后续不能修改和删除,即常量,readonly a=3

局部变量,加上local。复杂的脚本,建议函数内部使用局部变量,避免变量值错误传递。

状态变量,命令执行后,会返回一个状态值,存在$?里,0为正常,1-255为异常


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

[root@localhost ~]# cat jitu.sh
#!/bin/bash
##ji=x,tu=y,then,x+y=30,2x+4y=80,then foot/2-head=y
read -p "头:" head
read -p "脚:" foot
tu=$(($foot/2-$head))
ji=$(($head-$tu))
echo ji:$ji
echo tu:$tu
[root@localhost ~]#


8. 结合编程的for循环,条件测试,条件组合,完成批量创建100个用户,


1)for遍历1..100
2)先id判断是否存在
3)用户存在则说明存在,用户不存在则添加用户并说明已添加。

[root@localhost ~]# cat user_create.sh
#!/bin/bash
for i in `seq 100`
do
id user$i &> /dev/null
if [ $? -eq  0 ];then
#       echo $?
        echo "user is created,skiping"
else
#       echo $?
        useradd user$i
        echo "user is created"
fi
done
[root@localhost ~]#


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

答:head:磁头 磁头数=盘面数;

track:磁道 磁道=柱面数;

sector:扇区,512bytes;

cylinder:柱面 1柱面=512*sector数/track*head数=512*63*255=7.84M

10. 总结MBR,GPT结构。

mbr

MBR(Master Boot Record),中文意为"主引导区记录"。硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为三个部分。

第一部分为pre-boot区(预启动区),占446字节,bootloader第一阶段
第二部分是Partition table区(分区表),占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中,16个字节一个分区,最多四个分区,可以四个主分区,也可以把最后一个主分区用来做逻辑分区
第三部分是magic number,占2个字节,固定为55AA

MBR分区表的硬盘最多能划分4个主分区磁盘或3个主分区和扩展分区,并且MBR最大仅支持2TB的硬盘,

gpt

GPT = GUID Partition Table 全局唯一标识分区表

GPT,相比于MBR,是较新的标准。与MBR分区方案相比,它更灵活且兼容性更好。


11. 总结学过的分区,文件系统管理,SWAP管理相关的命令及选项,


fdisk

fdisk可以对识别到的磁盘进行分区,

-n是增加一个新分区,-d是删除,-w保存(-w之前的操作实际都未执行)

parted

能分超过4T的分区,做一个操作就执行一个(与fdisk不同)

mkfs(make file system)

分区完后在分区上创建文件系统,如mkfs.ext4,mkfs.xfs

 tune2fs

tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式,tune2fs -l /dev/sda1,不能查看xfs文件系统

xfs_info

查看xfs文件系统的详细信息

fsck

fsck(file system check)用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查

mount

对文件系统进行挂载mount 设备名 挂载点

umount

解除挂载 umount 设备或者目录

swapon

swapon命令用于激活Linux系统中交换空间,swap分区只存放内存中长时间不用的数据,需要使用的时候又转到内存中,注意cpu是不能直接读磁盘的

swapoff

swapon命令用于激活Linux系统中交换空间


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

扩容:

扩展逻辑卷。扩展文件系统

需要卷组有空间才能扩,卷组若无空间就先pvcreate,vgcreate,lvcreate

lvextend -L +5G /dev/vg01/mysql

lvextend -L +100%free

此时文件系统没有扩

扩文件系统

resize2fs /dev/vg01/mysql

一步搞定,加一个-r参数

lvextend -L -r +5G /dev/vg01/mysql

缩容:

缩减之前需要做数据备份

需要先解除挂载,

lvreduce -L 8G -r /dev/vg01/mysql

然后挂载回去,xfs不支持缩容

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值