Linux的基础操作(2)
一、rpm/yum 软件包管理器
1、rpm的用法
-i -> 安装某个package dependencies (依赖包)
-e -> 卸载(删除)某个package
-v -> 显示整个安装过程中的详细信息
-h -> 以#号显示安装进度
-q -> 查询
-f -> 文件名
-l -> 罗列文件
常见用法
root@localhost ~]#rpm -aq httpd 查询服务所要用到的rpm包
root@localhost ~]#rpm -ql httpd 查询服务所涉及到的所有文件,包括数据文件和配置文件
2、本地yum的配置 (配本地yum仓库)
1、红帽8以前
(1)连接系统镜像到光驱上 并挂载光驱里的镜像
root@localhost ~]# mount /dev/cdrom /media
root@localhost ~]#cd /media -> ls 查看光盘是否挂载成功(或 df -Th查看进程)
(2)修改yum源配置文件local.repo 文件后缀为.repo,文件名可自定义
local.repo 是自己创的
在/etc/yum.repos.d/里有个redhat.repo是收费的
[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[rhel]
name=rhel 这与[]里一致
baseurl=file:///media file是本地目录
enabled=1 代表开启此yum仓库,0为关闭此仓库
gpgcheck=0 代表验证仓库软件包的完整性(安全性),0为不验证
(3)清空yum源缓存信息:
[root@localhost ~]# yum clean all
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: rhel
Cleaning up everything
[root@localhost ~]#
(4)检索当前yum源信息:
[root@localhost ~]# yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
: manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel | 4.1 kB 00:00
(1/2): rhel/group_gz | 136 kB 00:00
(2/2): rhel/primary_db | 3.9 MB 00:00
repo id repo name status
rhel rhel 4,751
repolist: 4,751
[root@localhost ~]#
2、红帽8之后
第一步一致
(2)修改yum源配置文件local.repo 文件后缀为.repo,文件名可自定义
local.repo 是自己创的
在/etc/yum.repos.d/里有个redhat.repo是收费的
[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[BaseOs]
name=BaseOs
baseurl=file:///media/cdrom/BaseOs
enabled=1 代表开启此yum仓库,0为关闭此仓库
gpgcheck=0 代表验证仓库软件包的完整性(安全性),0为不验证
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
enabled=1 代表开启此yum仓库,0为关闭此仓库
gpgcheck=0 代表验证仓库软件包的完整性(安全性),0为不验证
后两步一致
3、yum命令总结:
[root@localhost ~]# yum clean all 清空yum缓存
[root@localhost ~]# yum repolist 列表查看本操作系统所有的yum源
[root@localhost ~]# yum list 显示已安装和可用的软件包
[root@localhost ~]# yum provides + 路径(命令) 查询某个文件安装的rpm包
[root@localhost ~]# yum -y install + 软件名 安装某个软件
[root@localhost ~]# yum -y remove + 软件名 卸载某个软件
[root@localhost ~]# yum -y update + 软件名 更新某个软件
[root@localhost ~]# yum info 提供与软件包相关的详细信息,包括安装所需的磁盘空间
yum -y upgrade 升级系统内核
二、网络配置与管理
1、网络命令
在Linux里
ifconfig <=> ip addr show(ip a) 查看本地所有网卡配置信息
ens32:代表本地以太网网卡 lo:代表本地回环网卡 virbr0:代表虚拟网卡
ping 测试网络连通性(使用ctrl+c来结束测试) 用-c 指定次数
ip route 查看本地路由
netstat 查看网络连接状态 -pant 查看带有PID进程信息的tcp协议网络端口连接状态
在Windows里
只有ipconfig 查看本地所有网卡配置信息
ping 命令——测试网络连通性(使用ctrl+c来结束测试) 用-n 指定次数
netstat 查看网络连接状态
2、配置文件修改
连接虚拟网卡
编辑 ——> 虚拟网络编辑器 修改网段
虚拟机 ——> 设置 网络适配器 自定义
进配置文件稍作修改
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet 网卡类型是以太网
BOOTPROTO=none ip地址获取方式有三种:dhcp动态获取ip,none或static手动设置固定ip地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32 网卡连接名
UUID=2c22b930-96b9-4ef4-abfb-ff9fbc85ff23 网卡的系统设备ID号,唯一性
DEVICE=ens32 设备名
ONBOOT=yes 是否开机自启
IPADDR=192.168.100.20 IPv4地址
PREFIX=24 NETMASK=255.255.255.0
GATEWAY=192.168.100.1 网关
DNS1=192.168.100.254 DNS地址,一张网卡可以绑定多个DNS
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
重启网络
红帽8以前
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip a 查看
红帽8之后
[root@localhost ~]nmcli connection reload
[root@localhost ~]nmcli connection up eth0
3、nmcli 命令配置
[root@localhost ~]# nmcli connection show 查看所有网卡连接信息
[root@localhost ~]# nmcli connection delete ens32 删除已有的网卡连接名ens32 配置文件也被删,但原来即网卡设备还在
[root@localhost ~]# nmcli connection add con-name eth0 ifname ens32 type ethernet autoconnect yes 给网卡ens32添加一个新的网卡连接,并将该网卡连接设置为:以太网类型、开机自启
[root@localhost ~]# nmcli connection modify eth0 ipv4.method man ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.2 ipv4.dns 119.29.29.29 -> 将网卡连接eth0修改为:手动添加一个IPv4地址,地址是192.168.100.20,24位子网掩码,网关地址192.168.100.2,对应的dns服务器地址是119.29.29.29
[root@localhost ~]# nmcli connection up eth0 开启网卡连接eth0 注:如果网卡连接起不来,可以先关闭该连接,命令为nmcli connection down eth0,然后再开启该连接
[root@localhost ~]# nmcli connection reload 重新加载所有的网卡连接配置
[root@localhost ~]# systemctl restart network 重启系统的网络服务
[root@localhost ~]# ifconfig 检查一下网络是否配置好了
[root@localhost ~]# ping 192.168.100.20 测试新配置好的本地网络是否ping得通
三、SElinux Linux安全访问策略
是Linux操作系统的一个额外的强制性的安全访问规则。用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。
保护的对象是服务、服务对应的文件/目录、服务对应的端口
如果selinux开启,以root身份运行进程,访问文件不光要受用户对文件访问权限的限定
还要受进程对文件selinux上下文类型的限定,否则,就算是root用户运行的进程,也不一定能访问某个文件。
1、selinux 的三种模式(状态):
enforcing 强制模式 拒绝非法访问并录入日志;
permissive 许可模式(警告模式) 暂时允许非法访问并录入日志
disabled 禁用模式 允许非法访问且不录入日志。
2、selinux的模式切换
临时切换:
关闭虚拟机就还原
setenforce 0 临时关闭selinux enforcing 转成 permissive
setenforce 1 临时开启selinux permissive 转成 enforcing
永久切换:
关闭虚拟机不会还原,到配置文件修改
vim /etc/selinux/config
SELINUX=enforcing/permissive/disabled -> 重启/reboot 后生效
3、查看selinux上下文类型
查看文件的上下文 ll -Z
查看进程的上下文 ps -auxZ
例:
ps -auxZ | grep sshd
查看所有端口的上下文 semamage port -l | grep 端口号
例:
semanage port -l | grep 22
查看当前启动的端口的上下文 netstat -pantZ
4、修改selinux上下文类型
如果提示找不到 semanage 这个命令
用yum provides 检索安装包后下载
semanage fcontext -a -t 上下文类型 ‘/filename(/.*)?’ 这里的filename要写绝对路径
restorecon -RFv /filename 强制递归刷新上下文类型并显示刷新过程
例:
semanage fcontext -a -t httpd_sys_content_t \'/opt/test(/.*)?\'
restorecon -RFv /opt/test/
文件会默认继承父文件夹的selinux类型
(在修改过上下文类型的文件夹里创建文件,文件的上下文类型跟文件夹一致)
5、给端口添加selinux上下文类型
semanage port -a -t 端口上下文类型 -p tcp/udp 端口号
例:
semanage port -a -t ssh_port_t -p tcp 22
semanage port -l|grep ssh(22)
端口不用强刷
6、selinux布尔值
当selinux开启时,系统默认会设置很多服务功能的开关
sebool就是那个开关
查看布尔值 getsebool -a
例:
getsebool -a |grep home 查看home的布尔值
设置开启或关闭 setsebool bool名 on/off
例:
setsebool ssh_sysadm_login on 开启ssh_sysadm_login这个服务功能