课堂笔记(DAY13-17)

#课堂笔记

day13

一、第二列结尾的. 是标识selinux的符号

1、selinux是什么?

安全规则,让Linux系统更安全的一套规则。

这个规则太严格了,一般的情况下都会关闭selinux。

自己开启防火墙啊,用其他手段来实现同样的安全目的。

2、怎么关掉Selinux?

查看方法:

[root@oldboyedu ~]# getenforce

Enforcing

临时关掉:

[root@oldboyedu ~]# setenforce

usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

[root@oldboyedu ~]# setenforce 0

[root@oldboyedu ~]# getenforce

Permissive

永久关闭:

vim /etc/selinux/config

[root@oldboyedu ~]# grep dis /etc/selinux/config

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

二、Linux里防火墙C6 iptables  C7 firewalld

作用:防护计算机,防止被入侵。

1、临时开启和关闭

systemctl start firewalld.service

systemctl status firewalld.service

2、让firewalld开机自启动

systemctl enable firewalld.service

三、什么是硬链接?

具有相同inode节点号的文件互为硬链接。

一个文件的两个入口。

创建硬链接:

ln 源文件 硬链接文件

作用:备份,防止误删。

目录硬链接

不支持人工创建目录硬链接。

四、软链接:

本质是快捷方式,指向源文件实体,本身和源文件是不同的文件。

1、工作中为什么会使用软链接。

第一个用途:

安装软件:/application/nginx-1.10

过半年:/application/nginx-1.20

导致一个问题,工作中,开发等引用/application/nginx-1.10路径。

安装软件:/application/nginx-1.10===>/application/nginx(让开发用)

过半年:  /application/nginx-1.20===>/application/nginx(让开发用)

第二个用途:

/etc/对应的分区要满了,没法放很多文件,但是程序还想通过/etc/目录访问文件。

此时,我们可以把文件放入/opt/oldboy下,然后做一个到/etc/oldboy的软链接。

四、Linux文件删除原理:

1、静态文件:没有进程或程序正在访问的文件。

所有的硬链接数为0(i_link),即所有硬链接都被干掉了,包括自身。

硬链接的数量的代表变量符号i_link

rm -f oldboy.txt oldboy_hard_link

执行完 其实文件也没删,关机停止运行。

a.系统定时清理没有文件名的inode。

b.磁盘检查会清理。

c.增加新文件时优先占用没有文件名的inode。

恢复的工具:debugfs,ext3grep等等。

2、动态文件:有程序或进程访问的文件

删除原理:

a.所有硬链接删除。i_link为0.

b..i_count是进程调用文件的数量(引用计数)。所有进程调用都要停止取消。i_count为0

Web服务器磁盘满故障深入解析,地址为

http://oldboy.blog.51cto.com/2561410/612351

五、通配符知识:

1、基本含义

通配符简单说就是键盘上的一些特殊字符,可以实现某些特殊的功能,

例如,可以用*代表所有,来模糊搜索系统中的文件。

2、范围:通配符试用范围是命令行中【普通命令】或脚本编程中。

3、模糊匹配:*匹配所有

                     ?匹配单个字符

                     [abcd]匹配里面任意一个字符

                     [a-d]匹配连续的任意单个字符

                     [!a-d]或[^1-9]取反

  路径位置:-  返回上一次所在目录

                    . 当前目录

                   .. 上一级目录

                     ~家目录

  引号相关:''单引号引用字符 所见即所得

                   “”双引号 引用字符串 解析变量、命令

                   ``反引号引用命令  解析命令等价$()

其他字符:;分号  命令分隔符

                   #管理员提示符    注释符

                  $普通用户提示符,也是调用变量使用

                  \转义字符  让字符还原本义

                   {}生成序列,引用变量让变量变成整体

                   !取反    在vim中表示强制,调用最近符合字符开头的命令

                    |  管道  前面的数据流交给后面处理

                    &&并且  -and

                  ||或者  or

day14

什么是正则表达式?

作用和特殊字符一样。

正则表达式是为处理大量的字符串及文本而定义的一套规则和方法。

开发者

假设"@"代表“I am”,"!"代表“oldboy”,

则执行echo "@!"的结果就是输出“I am oldboy”。

1、基本正则(BRE)

  ^尖角号oldboy 以…开头,^oldboy,以oldboy开头

$美元符 以…结尾 oldboy¥ 以oldboy结尾

^$ 空格

. 匹配任意一个且只有一个字符,和通配符?一样

\让有意义的字符脱掉马甲 还原本义

*匹配前面字符0次或者多次

.*表示所有内容

^.*组合符,以任意字符0个多个开头的内容

。*$组合符,以任意字符0个多个结尾的内容

[abc] 匹配和集合内的任意一个字符a或b或c,[abc]也可写成[a-c]

[^abc]不 匹配和集合内的任意一个字符a或b或c,[abc]也可写成[a-c]

2、扩展正则(ERE)egrep

    +匹配前一个字符一次或多次以上

    [:/]+匹配括号内的:或/字符1次或者1次以上

    ?匹配前一个字符0次或1次

    | 或者同时过滤多个字符串

    ()分组过滤被括起来的表示一个整体

    \n引用前面()小括号里的内容

    a{n,m} 匹配前一个字符最少n次,最多m次

    a{n,} 匹配前一个字符最少n次

    a{n} 匹配前一个字符正好n次

    a{,m} 匹配前一个字符最多m次

3、特殊中括号

[:digit:]匹配任意一个数字字符,相当与[0-9]

[:lower:]匹配小写字母,相当于[a-z]

[:upper:]匹配大写字母,相当于[A-Z]

4、元字符

\b匹配单词的边界 过滤单词类似grep -w

\d 匹配单个数字字符   需用grep -P

5、sed 可以实现增删改查

sed  选项  sed内置命令字符  文件

-n 取消命令的默认输出

-i 直接修改文件内容 而不是输出到终端

-e 量号 可以多次编辑

sed内置命令字符

s替换

g全局

p打印

d删除

day15

一、cut 按列切割

cut  -d指定分隔符“ ”-f指定那一列  文件

cut  -c按字符去内容   -c1-6 查找1到6列的内容

二、Linux三剑客

   awk  sed  grep

1、sed

Sed是操作、过滤和转换文本内容的强大工具。

常用功能有对文件实现快速增删改查(增加、删除、修改、查询),

其中查询的功能中最常用的2大功能是过滤(过滤指定字符串)和取行(取出指定行)。

sed [选项]  [sed内置命令字符]  [文件]

选项:

-n 取消默认sed的输出,常与sed内置命令的p连用※

-i 直接修改文件内容,而不是输出到终端。

如果不使用-i选项sed只是修改在内存中的数据,并不会影响磁盘上的文件※

sed的内置命令字符说明

s 替换

g 全局global

p 打印print

d 删除delete

2、awk是一门命令行操作也可以作为编程语言,处理字符串

    特长是取列

    语法awk 参数  条件    文件

参数:-F指定分隔符

         $0整行 $1第1列       $NF最后一列 $(NF-1)倒数第二列  NR行号

         [^r]非r  ^[^r]以非r字符开头

day16

Linux基础权限是9个字符。

1、    -rw-r--r--  1

    分3组:

    前三个字符是表示用户(属主)权限位  user(用户) u

    中三个字符是表示用户组权限位 group(用户组)     g

    后三个字符是其它用户权限位 others(其他用户)    o

    同一组的三个字符权限也是有位置的:

    r-- 第一个字符的位置读的权限位

    第二个字符的位置写的权限位

    第三个字符的位置是执行的权限位。

   r代表4    w代表2    x代表1    -代表0

2、文件权限详细说明

   2.1    可读r :表示具有读取、浏览文件内容

            可写w:表示具有新增、修改、删除文件内容的权限

            可执行x:表示具有执行文件的权限。

   2.2 a、如果没有可读r配合,那么使用vi编辑文件时会提示无法编辑

        可以使用echo等命令进行重定向

         删除文件或创建文件的授权是受父目录(上一级目录)的权限控制的(因为没有存放inode),而是在上级目录的block里存放着的,若修改上级目录的block,当然会受上级目录的inode的权限控制)和文件本身的权限无关,因此,文件本身的可写w权限和文件是否能被删除和改名无关。

     b、首先文件的本身要能够执行(命令或脚本)

    如果是普通用户,同时还需要具备可读r的权限才能执行文件

       而root用户只要有可执行x的权限就能执行文件

3、目录权限详细说明

   a、可读r:表示具有浏览目录下面的子目录内容的权限

b、可写w表示具有增加、删除或修改目录内文件的权限。但是,如果没有可执行x的配合,即使有w权限,也无法删除或创建文件

c、可执行x:表示具有进入如目录的权限。例如,可以执行cd dir 命令切换到目录下,但是无法列出目录下的文件及子目录。

3、Linux权限有两种表现形式:

1、数字表示法 称为8进制权限

r 4

w 2

x 1

- 0

实际的权限表示就是将每3位相加即可。

rwxr-xr-x  755

rwx 7

r-x 5

r-x 5

2、字符表示法

rw-rw-r-x  代表的数字权限为665

--xr-x-wx  代表的数字权限为153

-wx--x--x  代表的数字权限为311

而以下数字权限表示的字符权限如下:

755  代表的字符权限为rwxr-xr-x

644  代表的字符权限为rw-r--r--

134  代表的字符权限为--x-wxr--

修改文件属性的用户和组

chown 用户.用户组 文件  这里的点可以用:替换。

chown 用户 文件

chown .用户组 文件   ====chgrp 用户组 文件

4、安全权限临界点:

文件不想被修改被执行:644

目录不想被修改(删除移动创建)被执行(进入):755

5、企业真实案例:网站文件被恶意修改了。。。。打开网站后有弹窗广告(不是你网站的)

用户打开网站,报警。

原因:权限设置不到位。chmod -R 777 目录 开发人员习惯

解决方案:

1、备份

tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/

2、找到被修改的文件

[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'

3、批量删除

[root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d'

4、找到文件被篡改来源,并优化调整。

5、写总结 故障报告。

六、控制默认权限的东西  umask   临时修改

1、创建文件默认最大的权限为666 (-rw-rw-rw-),其默认创建的文件没有可执行权限x位。

666

022 -

2、基于文件:默认权限规则 了解

从666计算

umask都为偶数 默认权限用减法

umask有奇数 默认权限用减法 然后奇数位加1

基于目录:默认权限规则

从777计算

默认权限用减法

day17

一、sgid的作用就是让普通用户可以在执行某个设置了sgid位的命令时,

拥有和命令对应用户组(一般为root用户组)一样的身份和权限(默认)。

    locate搜索内容,默认从updatedb对应的数据库中查找

updatedb 更新locate查找内容对应的数据库。

   sgid基于目录的作用:

让不同的人创建文件属于相同的用户组,从而可以互相共享文件的权限

二、Linux系统定时任务:

1、什么是定时任务?

周期性的执行任务计划的软件,Linux定时任务的常用软件crond。

2、使用定时任务软件,可以每天,每小时按你需求重复的执行一项工作。

例如:备份 都是0点以后,2点爬起来备份,4点以后睡觉。

需要写一个程序实现自动备份,然后让定时任务软件帮你执行。

闹钟。。。。可以追女朋友。。。

3、怎么用

(1)系统定时任务计划

1.不用管理员干预,系统自动执行。

2.也可以利用系统任务为管理员服务。

(2)用户定时任务计划

在Linux系统中,

cron是定时任务的软件名,

crond是服务进程名,真正实现定时任务服务。

crontab命令是用来设置定时任务规则的配置命令。

要想配置定时任务,首先启动crond服务。

systemctl start crond.service

systemctl stop crond.service

systemctl status crond.service

开启自启动:

systemctl disable crond.service

systemctl enable crond.service

三、crontab命令是用来设置定时任务规则的配置命令。

内容存放哪里了。定时任务内容存放的位置/var/spool/cron/

以当前用户名作为文件名

-l l列表 查看已经设置的定时任务*

-e edit 编辑定时任务*

-u user 查看特定用户下定时任务

root:

crontab -l == cat /var/spool/cron/root

crontab -e == vim /var/spool/cron/root

编写定时任务的语法:

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  *  (command to be executed)

共六列:

第一列:分 minute (0 - 59)

第二列:时 hour   (0 - 23)

第三列:日 day of month (1 - 31)

第四列:月 month (1 - 12) OR jan,feb,mar,apr ...

第五列:周 day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

第六列:要执行的任务命令或程序

特殊符号:

* 表示的 每或每一 的意思

/n n是数字。

n代表自然数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成


你可能感兴趣的:(课堂笔记(DAY13-17))