[步骤] CentOS Linux DNF 的使用 (通过阿里源实现)

内容一:DNF 简介

1.1 DNF 软件简介

1) 从 CentOS8&RHEL8 开始默认使用 dnf 管理软件和补丁安装
2) dnf 也是 yum v4
3) dnf 的命令参数和 yum 一样
4) dnf 软件源的配置方法和 yum 一样

1.2 DNF 软件源简介

1) BaseOS 系统和基础的软件包
2) AppStream 其余所有官方的软件包

内容二:DNF 软件源的配置案例

2.1 删除原有的软件源配置文件

# rm /etc/yum.repos.d/*.repo

2.2 配置 AppStream 库

# vim /etc/yum.repos.d/CentOS-AppStream.repo

创建以下内容:

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=http://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2.3 配置 Base 库

# vim /etc/yum.repos.d/CentOS-Base.repo

创建以下内容:

[BaseOS]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2.4 配置 Epel 库

# vim /etc/yum.repos.d/CentOS-Epel.repo

创建以下内容:

[epel]
name=CentOS-$releasever - Epel
baseurl=http://mirrors.aliyun.com/epel/8/Everything/$basearch
enabled=1
gpgcheck=0

2.5 配置 Media 库

# vim /etc/yum.repos.d/CentOS-Media.repo

创建以下内容:

[c8-media-BaseOS]
name=CentOS-BaseOS-$releasever - Media
baseurl=file:///media/CentOS/BaseOS/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[c8-media-AppStream]
name=CentOS-AppStream-$releasever - Media
baseurl=file:///media/CentOS/AppStream/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2.6 清除 DNF 缓存

# dnf clean all

2.7 刷新并列出 DNF 软件源列表

# dnf repolist

[内容] CentOS Linux & RHEL YUM 的使用 (让某 1 个软件不被更新)

内容一:通过命令实现更新某 1 个软件(补丁)包以外其他所有软件(补丁)包的方法

# yum -x httpd* updaten

(补充:这里以更新除了名字以 httpd 开头外的所有软件包为例)

(注意:这种方法只在本次输入时有效)

或者:

# yum --exclude=kernel* update

(补充:这里以更新除了名字以 kernel 开头外的所有软件包为例)

(注意:这种方法只在本次输入时有效)

内容二:通过配置文件实现更新某 1 个软件(补丁)包以外其他所有软件(补丁)包的方法

2.1 修改 YUM 的配置文件

# vim /etc/yum.conf

添加以下内容:

......
exlude=mysql* kernel*

(补充:多个不需要升级的软件可以用空格隔开)

(注意:这里修改的配置文件可能是 /etc/yum.conf 也可能是 /etc/yum/yum.conf)

2.2 使用 YUM 升级除某 1 个软件包外的所有软件包

# yum update

内容三:通过 yum-versionlock 实现更新某 1 个软件(补丁)包以外其他所有软件(补丁)包的方法

3.1 安装 yum-versionlock

# yum install yum-versionlock

3.2 使用 yum-versionlock 锁定某 1 个软件包

3.2.1 使用 yum-versionlock 锁定某 1 个软件包
# yum versionlock httpd*

(补充:这里以锁定名字以 httpd 开头的所有软件包为例)

3.2.1 使用 YUM 升级除某 1 个软件包外的所有软件包
# yum update

3.4 显示通过 yum-versionlock 锁定的软件包

# yum versionlock list

3.5 取消通过 yum-versionlock 锁定的软件包

3.5.1 取消通过 yum-versionlock 锁定的某 1 个软件包
# yum versionlock delete httpd*

(补充:这里以解除锁定名字以 httpd 开头的所有软件包为例)

3.5.2 取消通过 yum-versionlock 锁定的所有软件包
# yum versionlock clear

[命令] Linux 命令 sudo (用户提权)

内容一:sudo 简介

sudo 命令可以让非 root 用户,在不知道 root 的密码的情况之下以 root 的身份执行某一些命令
但是要实现这一目标需要提前修改 sodu 的配置文件

内容二:修改 sudo 配置文件的方法

# visudo

(注意:此方法可以在保存退出时检查 sudo 文件有没有语法错误)

或者:

# sudoedit /etc/sudoers

(注意:此方法可以在保存退出时检查 sudo 文件有没有语法错误)

或者:

# vi /etc/sudoers

(注意:此方法不能在保存退出时检查 sudo 文件有没有语法错误)

或者:

# vi /etc/sudoers

(注意:此方法不能在保存退出时检查 sudo 文件有没有语法错误)

内容三:修改 sudo 配置文件的案例

3.1 案例一:让 zhumingyu 用户可以通过 sudo 获取所有 root 权限

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   ALL  
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.2 案例二:让 zhumingyu 用户可以通过 sudo 获取所有 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: ALL  
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.3 案例三:让 zhumingyu 用户可以通过 sudo 获取 firewalld 命令的 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: firewalld
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.4 案例四:让 zhumingyu 用户可以通过 sudo 获取 firewalld 和 chmod 命令的 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: firewalld,chmod
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.5 案例五:让 zhumingyu 用户可以通过 sudo 获取 passwd 命令的 root 权限,并且免密码,但是不能修改 root 的密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: !/usr/bin/passwd root
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.6 案例六:让 zhumingyu 用户可以通过 sudo 获取 passwd 命令的 root 权限,并且免密码,但是不能修改以 a 开头命名用户的密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: !/usr/bin/passwd a.*
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.7 案例七:让 zhumingyu 组里的所有用户通过 sudo 获取 passwd 命令的 root 权限,并且免密码

3.7.1 让 zhumingyu 组里的所有用户通过 sudo 获取 passwd 命令的 root 权限,并且免密码
# vi /etc/sudoers

添加以下内容:

......
%zhumingyu ALL=(ALL)    NOPASSWD: /usr/bin/passwd 
......

(补充:% 代表这是一个组而不是一个用户)

(说明:在 “%wheel    ALL=(ALL)    NOPASSWD: ALL” 这一行后面仿照着加入一行就行了)

3.7.2 将相关用户添加到 zhumingyu 组里
# usermod -a -G zhumingyu <user>

[命令] Linux 命令 chattr (文件锁)

内容一: chattr 格式

1.1 锁定文件的格式(文件将无法被修改、追加和删除)

# chattr +i <file>

1.2 解锁文件的格式(文件将可以被修改、追加和删除)

# chattr -i <file>

1.3 锁定文件后仅可追加内容的格式(文件将无法被修改和删除,但是可以被追加新内容)

# chattr +a <文file> 

1.4 解锁文件只可被追加内容的格式(文件将取消无法被修改和删除,但红四可以被追加新内容的状态)

# chattr -a <file> 

1.5 显示文件特殊属性

# lsattr <file> 

内容二: chattr 的使用案例

2.1 案例一:锁定文件并显示文件的锁定状态

2.1.1 锁定文件
# chattr +i /etc/resolv.conf

(补充:这里以锁定 /etc/resolv.conf 文件为例)

2.1.2 显示文件的锁定状态
# lsattr /etc/resolv.conf
----i----------- /etc/resolv.conf

(补充:这里以显示 /etc/resolv.conf 文件为例)

2.1.3 解锁文件
# chattr -i /etc/resolv.conf

(补充:这里以解锁 /etc/resolv.conf 文件为例)

2.2 案例二:锁定文件后仅可追加内容并显示文件的锁定状态

2.2.1 锁定文件后仅可追加内容
# chattr +a /etc/hosts

(补充:这里以锁定 /etc/hosts 文件为例)

2.2.2 显示文件的锁定状态
# lsattr /etc/hosts
----a---------- /etc/hosts

(补充:这里以显示 /etc/hosts 文件为例)

2.2.3 解锁仅可追加内容的文件
# chattr -a /etc/hosts

(补充:这里以解锁 /etc/hosts 文件为例)