linux学习笔记(27)压缩软件归档软件;tar,gz,xz;Selinux
【1】tar
(1.1)基本语法
tar 选项 参数 -c 创建 -f 指定文件名 -x 解压缩、释放 -P 保持原始路径 -z 以gzip格式进行压缩 -j 以bzip2的格式进行压缩 -J 以xz格式进行压缩
-t 查看压缩包里有什么文件
(1.2)基本案例 .tar
tar -cPf all.tar ./*.txt # 压缩,-p 这里要写绝对路径,如果写相对路径,则解压时也是相对路径
tar -xPf /all.tar # 解压缩
# 注意 f 必须在最后,否则会报错
(1.3)解压到指定目录 tar -xf all.tar -C dir
注意,dir 必须要存在,否则报错。
[root@red ~]# tar -xf /all.tar -C test [root@red ~]# ls test 123 1.txt 2.txt 3.txt 4.txt
(1.4)压缩方式 gzip(.gz)、bzip2(.bz2)、xz
碰到对应的格式,无论是压缩成这个格式、还是解压这种格式文件,都要加这个参数。
-z 以gzip格式进行压缩 -j 以bzip2的格式进行压缩 -J 以xz格式进行压缩
正常情况下,xz格式效压缩率最高。
如果出现命令未找到的情况,需要额外安装一下
[root@red test]# tar -cjf bzip_all.tar.bz2 *.txt /bin/sh: line 1: bzip2: command not found tar: Child returned status 127 tar: Error is not recoverable: exiting now yum install -y bzip2 Installed: bzip2-1.0.8-8.el9.x86_64 Complete! [root@red test]# tar -cjf bzip_all.tar.bz2 *.txt [root@red test]# ls 123 1.txt 2.txt 3.txt 4.txt all.tar.gz bzip_all.tar.bz2 [root@red test]#
(1.5)查看压缩包里有什么文件 -t
[root@red /]# tar -tf all.tar ./1.txt ./2.txt ./3.txt ./4.txt [root@red test]# tar -tf all.tar.gz 1.txt 2.txt 3.txt 4.txt
【2】selinux
(2.1)查看与开启关闭
sestatus #查看整体情况,是否启停
getenforce # 查看 selinux 当前模式 Enforcing(严格模式) 为开启,Permissive(宽容模式)为临时关闭。
setenforce 0 # 临时设置为 Permissive 模式
setenforce 1 # 临时设置为 Enforcing 模式
关闭SELinxu命令(永久关闭)
$ vi /etc/selinux/config
将SELINUX=enforcing 改为 SELINUX=disabled , 设置后需要重启才能生效.
[root@CentOS7-Basic ~]# /usr/sbin/sestatus #再次查看 SELinux status: disabled
(2.2)使用 semanage 命令管理 selinux
不记得 semanage 对应要安装什么包了,使用 yum provides semanage
[root@red test]# yum provides semanage Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. Last metadata expiration check: 1:30:49 ago on Wed 19 Apr 2023 08:25:00 PM CST. policycoreutils-python-utils-3.4-4.el9.noarch : SELinux policy core python utilities Repo : a Matched from: Filename : /usr/sbin/semanage [root@red test]# yum install -y policycoreutils-python-utils-3.4-4.el9.noarch
[root@red test]# yum install -y setroubleshoot-server # 该软件可以定位、拍错很多selinux问题
(2.3)http 程序启动报错/排错
因为我们 httpd 修改了配置,是以 82 端口启动的,不是默认的 80,所以被selinux 拦截了。
less /var/log/messages,如下图,setroubleshoot-server 给了我们建议。
(2.4)semanager 使用,让selinux放行
根据 2.3 的查看,建议我们针对 httpd 使用命令 [ semanage port -a -t PORT_TYPE -p tcp 82]
我们先使用 semanage port -l |grep http 查看一下 http当前
我们再来看一下这个命令 [ semanage port -a -t PORT_TYPE -p tcp 82]
-a 是追加(-d 是删除),-t 是类型,这里的 PORT_TYPE 是类型值,这里应该修改成上图中的 http_port_t
-p 是协议及端口, tcp 是协议名 82 是端口名。
最终 semanage port -a -t http_port_t -p tcp 82