linux进阶知识点

Posted 小码农UU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux进阶知识点相关的知识,希望对你有一定的参考价值。

文章目录

真机进行远程管理虚拟机

  1. 真机ping两台虚拟机

ping 172.25.0.10 desktop这台机器

ping 172.25.0.11 server这台机器

2.真机执行命令: ssh 用户@对方的IP地址

为了方便管理,用户直接root

远程创建一个xixi文档,再去该机器上看一下有没有,很明显是有的

ctrl + shift + t是打开新的终端

-X:可以在远程管理时,开启对方的图形程序

简化复杂的命令

永久别名的设置 ~/.bashrc

~代表的是家目录,而且bashrc是不是以.开头,这就说明他非常的重要,这个文件关系到用户自定义的一些信息,并且也是系统级的配置文件

linux有一个特点就是临时的会用命令来敲,永久的需要写在一个文本文件当中。命令执行的大多会保存在内存当中,而文本文件是保存在磁盘当中

先在真机上切换到普通用户Student 用vim打开bashrc

在里面写入下面实现远程管理的别名来达到永久的效果

然后新开一个终端才会生效

权限和归属

基本权限

访问方式(权限)

读取:允许查看内容 -read r

写入:允许修改内容 -write w

可执行:允许运行和切换 -execute x

对于文本文件

r:可以看内容 cat head less tail

w:可以修改 vim > >>

x:可以执行代码 shell脚本

基本权限的类别

权限适用对象

所有者:拥有此文件/目录的用户 -user u

所属组:拥有此文件/目录的组 -group g

其他用户:除所有者,所属组以外的用户 -other o

查看权限

使用ls -l命令

ls -ld 文件或目录

那这两个有什么区别呢

ls -l展示的是目录里面内容的详细属性

ls -ld展示的是目录本身的详细属性

设置基本权限(只有root一个人,其他用户都不可以改)

使用chmod命令

chmod [-R] 归属关系±=权限类别 文档…

​ [-R]:递归设置权限

给所属组添加写入权限

当然为了方便可以用===来操作,用,==隔开

如果是所有人都是rwx权限

其他人有w权限的话nsd01目录会有着重色,让人知道其他人(o)有写入权限

linux判断用户具备的权限

匹配及停止

顺序:所有者>所属组>其他人

1.判断用户角色,所有者 所属组 其他人

2.查看相应角色的权限位

那我也想让lisi有写权限呢,那就通过root改权限普通用户是不可以改权限的

设置文档归属

使用chown命令

chown [-R] 属主 文档…

chown [-R] :属组 文档…

chown [-R] 属主:属组 文档…

特殊/附加权限

Set GID

附加在属组的x位上

属组的权限标识会变为s

适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组

让子文档自动继承父目录的所属组身份

你会发现aa自动继承s权限

Set UID(基本很少用)(但是攻击方很常用,他是一种攻击手段)

附加在属主的x位上

属主的权限标识会变为 s

适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限

这个绿色的就是可执行文件,mkdir这条命令的可执行文件就是这个

这个可执行文件飘红就是因为所有者有了s权限而已

然后在lisi用户下创建/opt/abc会发现所有者不是lisi而是root,这就是Set UID的原因

我们改回来并把abc删了后再用lisi创建看看,但是很抱歉你创建不了,没有权限

这也是上面说到为什么Set UID是一种攻击手段了

Sticky Bit

附加在其他人的x位上

其他人的权限标识会变为t

适用于开放w权限的目录,可以阻止用户滥用w写入权限(禁止操作别人的文档)因为w有写入权限也就是说他可以无休止的删文件 所以为了防止出现大家互删的局面 就引入了t权限

acl访问控制列表

acl策略(也叫acl权限)的作用

  • 文档归属的局限性

任何人只属于三种角色:属主,属组,其他人

无法实现更精细的控制

  • acl访问策略

能够对个别用户,个别组设置独立的权限

大多数挂载的EXT3/4.XFS文件系统默认以支持

setfacl -m这里的m是modify修改的意思 u[g]:

用户[组]这里的u g 不是所有者,所属组的意思,只是代表冒号后面是用户或组的意思:权限[rwx] 文件路径

那有没有专门看acl权限的呢,是有的:

getfacl 文件路径

删除acl策略

setfacl [-R] -x u:用户 文档 删除指定acl策略

setfacl [-R] -b 文档 删除所以acl策略

设置权限的黑名单,单独拒绝一个用户

一个经典题:请实现lisi用户,可以查看/etc/shadow文件内容,您有几种办法?

一般问了这个肯定不是一个办法

1.利用其他人进行设置

chmod o+r /etc/shadow

2.利用所属组进行设置

chown :lisi /etc/shadow一定要看清是所属组还是所有者

chmod g+r /etc/shadow

3.利用所有者进行设置

chown lisi /etc/shadow

chmod u+r /etc/shadow

4.利用acl进行设置

setfacl -m u:lisi:r /etc/shadow

软件包管理

零散软件包管理

1.虚拟机server具备软件包

2.虚拟机classroom构建web服务,让光盘的内容以网页的形式提供给所有的客户端

web服务:主要就是提供网页内容

http协议:超文本传输协议

https协议:安全超文本传输协议

3.真机打开

firefox classroom.example.com

打开之后你会看到一些文件夹

http://classroom.example.com/content/rhel7.0/x86_64/dvd/Packages/ 这个就是firefox上cd包的路径

下载软件包

使用wget下载工具

wget 软件包的URL网址

wget软件包的URL网址 -O /目录路径/新文件名最好用上面那条命令 保存到当前然后mv就行了 这个-O命令有点长了

使用rpm命令管理软件

RPM ----- Package Manager ,RPM包管理器

rpm -q 软件名… 查询软件安没安装

rpm -ivh 软件名-版本信息.rpm…安装这个包

只有安装软件的时候才会打这个全名(版本啊,.rpm啊什么的)

rpm -e 软件名… 卸载包

rpm -ql 软件名 列出安装的内容就是查询软件的安装清单

导入红帽签名认证操作

然后把他导入

rpm --import 下载下来的文件

然后我们再重新安装vsftpd就没有那个警告信息了

升级linux内核

1.下载新的内核

http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/

在这个路径里面

内核装好后重启才会生效

查看内核版本

uname -r

重启前:

重启后:

yum软件包仓库:自动解决依赖关系

以后我们自己装包基本都是用yum来装的,很少用rpm来装,因为rpm不可以自动解决依赖关系

yum主要提供服务:可以为客户端自动解决依赖关系,安装软件包

服务端:1.众多的软件包(Packages) 2.仓库数据文件(repodata)。这两个东西都在光盘里面

这里的虚拟机classroom已经是完美的yum服务端,他已经构建了web服务共享光盘所有内容

总结:未来我们如何搭建服务端呢?构建web服务或FTP服务,共享光盘所有内容

客户端:虚拟机server或虚拟机desktop

yum客户端机制是要我们书写一个配置文件:指定服务端位置/etc/yum.repos.d/*.repo

在这个路径下有错误的配置文件会影响真确的配置文件(也就是说在这个路径下100个文件99个是正确的1个是错的,那么其他的正确的也不能用)

所以为了绝对正确直接把该路径下所有的配置文件都删了,所以用了==*.repo==

然后列出我们仓库的所有信息

yum repolist

有这个并不代表yum是可以用的,yum到底能不能用是看他能不能为你去装包

yum [-y] install 软件名

他会自动为我们寻找依赖关系,但还要我们回答

y 就是装 d 就是下载下来不装 N就是不装

所以为了更快也可以这样写

yum -y install httpd

卸载软件包yum remove 软件名

因为他可以连带卸载掉依赖他的软件包,所以不要和-y一起用,可能会把重要文件也会一起卸载掉

当你看到只需要移除1个或没有你想保留的就可以y了

清空缓存yum clean all

yum clean all 就是把yum内存里面所有的缓存清掉

然后你再打yum repolist 会明显有一个慢的感觉,因为他要重新加载到内存里面

分区规划及使用

一个扇区512字节

一块硬盘的艺术之旅

识别硬盘=>分区规划=>格式化=>挂载使用

MBR/msdos 分区模式

14个主分区,或者03个主分区+1个扩展分区(n个逻辑分区)

最大支持容量为2.2TB个的磁盘

扩展分区不能格式化

1.识别硬盘

lsblk

2.分区规划

分区模式:MBR GPT

MBR 主启动记录模式

最大空间支持2T

类型:主分区 扩展分区 逻辑分区

最多有4个主分区

3个主分区+1个扩展分区(n个逻辑分区)

GPT

最大空间18EB

使用fdisk分区工具

查看分区表

fdisk -l 硬盘设备文件

修改硬盘分区表

fdisk 硬盘设备 这是交互式的还算比较安全的

然后我们不保存退出试一试 按q

我们再把刚刚操作的再弄一遍反正也很快,然后保存再看一下

/dev/sda5表示的含义

SCSI设备的硬盘,第一块第五个分区。也可以说

SCSI设备的硬盘,第一块第一个逻辑分区

格式化:赋予空间文件系统的过程

那什么叫文件系统呢:空间存储数据的规则

windows: FAT NTFS

linux: ext4(RHEL6) xfs(RHEL7)

常用的格式化工具

mkfs 工具集

mkfs.ext3 分区设备路径

mkfs.ext4 分区设备路径

mkfs.xfs 分区设备路径

mkfs.vfat -F 32 分区设备路径

我们格vdb1

也有一个命令看看自己格没格完

blkid /dev/vdb1

用blkid来看没被格式化的分区是是什么都不显示的,因为没有文件系统

我们在用xfs文件系统来格式化vdb2

挂载使用

创建一个目录part

将vdb1挂载到part上

那么如何检测他挂载成功了呢

检测挂载df

df是查看正在挂载所有设备的使用情况

所以我们易读我们和==-h==配合使用,这个和ls -h一个道理,就是为了易读

我们再挂载vdb2

但是这些都是临时挂载,也就是说一重启这些挂载点就消失了。

所以我们要干嘛

开机自动挂载

配置文件/etc/fstab 的记录格式

设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序

这个配置文件和我们上面学的yum软件仓库配置文件一样的性质

怎么知道自己成没成功呢

有一个自动挂载检测mount -a a是auto自动的意思,这个命令回车会阅读通篇的fstab这个文件,检测他的书写是否符合他的格式

如果没有任何报错代表语法格式都是正确的,并会按照我写的挂载点进行挂载

综合分区

我们继续分区

分到第三个

总结

1.识别硬盘 lsblk

2.规划分区 fdisk

3.识别分区 partprobe

4.分区格式化 mkfs.etx4 mkfs.xfs 用blkid查看文件系统类型

5.分区挂载

  • 可以mount 手动挂载 临时
  • 可以去配置文件/etc/fstab 永久

6.挂载查看

  • mount -a自动挂载
  • df -h 挂载查看

LVM逻辑卷

最低要求整个分区,不可以是一个分区的剩余空间

  1. 整合分散的空间
  2. 空间可以扩展(不会影响到原来的数据内容)

LVM工作方式

在分区—>格式化中间增加分一个逻辑层

零散空间存储–整合的虚拟磁盘—虚拟的分区

LVM管理工具集

制作逻辑卷

比如我想把vdb1,2,3做成卷组

1.首先扫描物理卷

pvscan

会有一个没有匹配的物理卷的提示

还有一条命令实际上是和pvscan一样的就是pvs

如果回车后什么都没有就是代表没有

2.创建物理卷

pvcreate

然后再用pvcreate命令就行了

然后我们再pvs看看有没有物理卷

看到这个就说明物理卷创建成功了

3.创建卷组

有了物理卷之后我们就可以创建卷组了

先vgs

他说没有,那我们就创建

vgcreate 卷组名 物理卷1 物理卷2…

3合1:实际上这条vgcreate命令很强大,他可以在没有物理卷的前提下,先把分区转成物理卷在合成卷组

格式 vgcreate 卷组名 分区路径…

4.创建逻辑卷

lvcreate -n mylv -L 8G systemvg 我想创建一个mylv的逻辑卷8G大小,基于的卷组是sysytemvg

n是名字 L是大小

5.逻辑卷的使用

逻辑卷生成也会在dev文件下生成相应的文件

我们对逻辑卷格式化

6.逻辑卷挂载

逻辑卷的线上扩展

1.卷组有足够的剩余空间

有空间就可以扩展逻辑卷

lvextend -L 3G 逻辑卷路径 就是括到3G 如果你记得之前多大的话也可以这样

lvextend -L +1G 逻辑卷路径 之前2G现在再加1G就是括到3G

扩展文件系统大小文件系统是一种规则,类似横着存还是竖着存的这种意思

刷新文件系统

resize2fs: 扩展ext4文件系统

xfs_growfs: 扩展xfs文件系统

2.卷组没有足够的剩余空间

扩展卷组

比如我还想扩3个G但发现卷组剩余的空间也没有3个G

之后的步骤就是卷组空间够的情况了

逻辑卷缩小基本没人缩小,会损坏数据

逻辑卷不光可以扩展也可以缩小

xfs文件系统不支持缩小

ext4文件系统支持缩小

卷组划分空间的单位:PE

默认1PE=4M

显示卷组的详细信息

vgdisplay 卷组名

请划分一个大小250M的逻辑卷lvrehat

修改PE为1M就万事大吉了

vgchange -s 1M systemvg

lvcreate -L 250M -n lv systemvg中-L后面是大小 这里是250M
lvcreate -l 250 -n lv systemvg中-l后面是PE个数,不在意PE大小,这里是250个PE 那么他就会是250*PE大小来创建逻辑卷

逻辑卷的删除

顺序:先删除逻辑卷,然后再删除卷组,最后删除物理卷

grep文件过滤:显示文件有效信息(去除注释,去除空行)

grep [选项] ‘匹配模式’ 文本文件

常用命令选项

-v 取反匹配

-i 忽略大小写

^word 以字符串word开头

word$ 以字符串word结尾

注释信息:大多数配置文件中以#开头

那么怎样只能看到#开头的信息呢

grep ^# 文件路径

但实际上我们需要的是不注释的文件信息

grep -v ^# 文件路径

匹配空行:^$就是以什么开头以什么结尾 就是什么都没有 就是空行

因为有些文件注释和空行很多看起来费劲

grep -v ^# 文件路径把这个再管道给不要空行的 | grep -v ^$

查找文件

根据预设的条件递归查找对应的文件

find [目录] [条件1] [-a|-o] [条件2]…

常见条件表示

-type 类型(f,d,l)f表示文本文件 d表示目录 l表示快捷方式

-name “文档名称” 按照名字进行查找

-size +|-文件大小 (k,M,G)+是大于多少的时候,-是小于多少的时候

-user 用户名

-mtime 根据文件修改时间==(都是过去时间)==

-mtime +10 :10天之前修改过的文档

-mtime -10 :最近10天之内修改过的文档

find高级使用 exec操作

find … -exec 处理命令{} ;

优势:以{}代替每一个结果,逐个处理,遇;结束

把find的结果通过exec给拷贝 要注意管道操作不可以管道给两个参数及其以上的,因为到时候命令不知道那个是源参数,还是目标参数

NTP时间同步

NTP网络时间协议

Network Time Protocol

NTP服务器为客户机提供标准时间

NTP客户机需要与NTP服务器保持沟通

RHEL7客户端的校时服务

软件包:chrony

配置文件:/etc/chrony.conf

系统服务:chronyd

NTP服务器:虚拟机classroom

NTP客户机:虚拟机server

1.安装chrony软件包,与NTP服务器沟通

2.修改配置文件

3.重启程序(重启客户端服务)

同步时间这个服务

systemctl restart chronydchronyd中的d是daemon守护进程的意思

systemctl enable chronyd开机自启动这个程序

重启服务和开机自启程序都是没有什么显示与返回的

使用LDAP认证,实现网络用户认证,达到用户的集中管理

网络用户:用户信息会放在网络中LDAP服务器

本地用户:用户信息会放在/etc/passwd中

LDAP服务器:虚拟机classroom

客户端:虚拟机server

1.安装sssd软件,与LDAP服务器沟通

yum -y install sssd

rpm -q sssd

2.安装authconfig-gtk图形的工具 ,进行配置客户端sssd软件

yum -y install authconfig-gtk

authconfig-gtk

我这个虚拟机看不到图型界面就借老师的图吧

P客户机:虚拟机server

1.安装chrony软件包,与NTP服务器沟通

[外链图片转存中…(img-CsUcQJAX-1630921310453)]

2.修改配置文件

[外链图片转存中…(img-Mt2RLaQb-1630921310464)]

[外链图片转存中…(img-dcUeBiCU-1630921310465)]

3.重启程序(重启客户端服务)

同步时间这个服务

systemctl restart chronydchronyd中的d是daemon守护进程的意思

systemctl enable chronyd开机自启动这个程序

[外链图片转存中…(img-4JpNEFzL-1630921310467)]

重启服务和开机自启程序都是没有什么显示与返回的

[外链图片转存中…(img-ohvxzVJs-1630921310469)]

使用LDAP认证,实现网络用户认证,达到用户的集中管理

网络用户:用户信息会放在网络中LDAP服务器

本地用户:用户信息会放在/etc/passwd中

LDAP服务器:虚拟机classroom

客户端:虚拟机server

1.安装sssd软件,与LDAP服务器沟通

yum -y install sssd

rpm -q sssd

[外链图片转存中…(img-jAhvfGKz-1630921310471)]

2.安装authconfig-gtk图形的工具 ,进行配置客户端sssd软件

yum -y install authconfig-gtk

authconfig-gtk

[外链图片转存中…(img-9eChhhcX-1630921310473)]

我这个虚拟机看不到图型界面就借老师的图吧

[外链图片转存中…(img-sQQpWCwa-1630921310475)]

[外链图片转存中…(img-JLIL8O6F-1630921310477)]

以上是关于linux进阶知识点的主要内容,如果未能解决你的问题,请参考以下文章

Linux进阶之补充知识篇

linux--工具进阶

Linux运维进阶之路

Linux运维从入门到进阶

《跟老男孩学Linux运维之shell编程实战》-第三章 shell变量知识进阶

Linux运维进阶之路