Linux小知识分享-压缩包解压之后属主和属组不是当前用户问题

今天给大家分享一个Linux小知识

在这里插入图片描述

背景

假设当前Linux下用户是root,我们从网络上或者其他环境下载了个压缩包进行本地解压。

结果发现解压之后的文件或者文件夹的 属主和属主 都不是当前用户root

# 检查当前用户
[root@test-xxxx-01-vm /tmp/colinspace ]# id
uid=0(root) gid=0(root) groups=0(root)# 上传文件然后查看上传的文件属主和属组信息
[root@test-xxxx-01-vm /tmp/colinspace ]# ls -l mysqld_exporter-0.15.1.linux-amd64.tar.gz
-rw-r--r-- 1 root       root        8287769 Jan 30 10:25 mysqld_exporter-0.15.1.linux-amd64.tar.gz# 解压文件之后查看
# 发现解压之后的文件夹 属主和属组分别是 zhangsan 和 lisi 
[root@test-xxxx-01-vm /tmp/colinspace ]# tar -zxf mysqld_exporter-0.15.1.linux-amd64.tar.gz
[root@test-xxxx-01-vm /tmp/colinspace ]# ll
total 8100
drwxr-xr-x 2 zhangsan   lisi           4096 Dec 12 15:57 mysqld_exporter-0.15.1.linux-amd64
-rw-r--r-- 1 root       root        8287769 Jan 30 10:25 mysqld_exporter-0.15.1.linux-amd64.tar.gz# 检查系统中zhangsan 和 lisi的信息
[root@test-xxxx-01-vm /tmp/colinspace ]# grep zhangsan /etc/passwd
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
[root@test-xxxx-01-vm /tmp/colinspace ]# grep lisi /etc/group
lisi:x:1002:

根源所在

其实根源在于你解压的时候没有明确指定 属主和属组的情况下。 解压时使用的是压缩文件中保存的属主和属组信息。

可以通过 -tvf 参数组合来查看压缩包的中文件信息( -t/–list means list the contents of an archive)

[root@test-xxxx-01-vm /tmp/colinspace ]# tar -tvf mysqld_exporter-0.15.1.linux-amd64.tar.gz
drwxr-xr-x circleci/circleci 0 2023-12-12 15:57 mysqld_exporter-0.15.1.linux-amd64/

发现这里展示的用户和用户组是circleci, 但是当然主机肯定没有这个用户,而且也不是root

[root@test-xxxx-01-vm /tmp/colinspace ]# grep circleci /etc/passwd /etc/group

这个时候使用另外一个参数 --numeric-owner, 含义是 always use numbers for user/group names

[root@test-xxxx-01-vm /tmp/colinspace ]# tar -tvf  mysqld_exporter-0.15.1.linux-amd64.tar.gz  --numeric-owner
drwxr-xr-x 1001/1002         0 2023-12-12 15:57 mysqld_exporter-0.15.1.linux-amd64/
... ...

看到这里显示的属主和属组分别是 1001 和 1002 ,不正是当前主机上对应的 zhangsan 和 lisi 么。

所以,解压之后的属主和属组虽然不影响实际使用。但是显示不是当前用户的,总感觉有点’奇怪’ ,对于运维人员而言,保持好奇心进行探究问题是好习惯哦~

写在最后

如果想要对解压之后的文件或者文件夹的属主和属组有要求,那么就只能是解压之后再通过chown来设定属主和属组了

这时有人就说不是有--owner=Name--group=Name 参数可以用吗?

当然 tar 命令确实有这两个参数,但是它们不是在解压的时候使用的。而是在压缩的时候来使用修改最终存放到压缩包中文件或者文件夹的属主和属组的。

注意这里说的是压缩包总的文件或者文件夹 而不是最终的 压缩包文件哦~

最终的 压缩包文件的属主和属组是当前用户。但是里面的文件或者文件夹的属主和属组会被修改为这两个参数设定的值


我是菩提老鹰,热爱分享,保持好奇和乐观。有问题的小伙伴加我讨论交流哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 配置和缓存目录 设置

IDEA系列产品&#xff0c;一般会在用户目录创建 配置 和 缓存 目录&#xff1a; %APPDATA%\JetBrains%LOCALAPPDATA%\JetBrains 一般会展示为&#xff1a; C:\Users\<username>\AppData\Roaming\JetBrainsC:\Users\<username>\AppData\Local\JetBrains 一般占用…

MtfLive直播导航PHP源码,附带系统搭建教程

将自动采集斗鱼、虎牙、触手、YY、章鱼、电视直播按分类/关键词聚合&#xff0c;用户选择分类&#xff0c;可以观看到全网该关键词下正在直播的内容。 特点 PC站和H5移动站自适应 自动缓存&#xff0c;避免频繁抓取数据 自定义抓取采集规则&#xff0c;同时支持HTML和JSON …

【Java实战】农行支付对接流程开发详解

文章目录 前言📝一、环境配置1.对接资料2.导入接口包 JAR 文件3.引入配置文件二、接口对接1.微信支付2.农行页面支付3.支付回调4.担保确认及担保确认查询总结前言📝 在实际开发中,涉及金钱那就少不了对接支付,常用的支付方式有微信支付和支付宝支付,这两个在其官网都有…

Character Auras 3

该包包含12种惊人的光环效果! 列表: 秋天的氛围 血光 五彩纸屑的光环 疾风 火光光环 森林氛围 治疗光环 冰系光环 爱的光环 毒气环 星光气场 所有预制件都已准备好用于游戏,只需将它们拖放到游戏中即可! 下载: ​​Unity资源商店链接 资源下载链接 效果图:

OJ刷题:《剑指offer》之左旋字符串!

目录 1.题目描述 2.方法一&#xff08;元素一一挪&#xff09; 2.1算法解析 2.2代码实现 3.方法二&#xff08;三次逆置&#xff09; 3.1算法解析 3.2代码实现 4.方法三&#xff08;库方法&#xff09; 4.1算法解析 4.2代码实现 5.完结散花 创作不易&#xff0c;宝子…

以太网-环回地址

文章目录 环回地址在同一台电脑上开发两个可执行文件(EXE)并使用环回地址进行通信交互Python示例代码环回地址 环回地址是指在计算机网络中,用来标识设备自身的一个逻辑地址,也被称为本地环回地址。它是一个虚拟的接口,可以确保路由 ID 的稳定性,且不会出现链路失效的情…

实习记录——第九天

今天早上下雨了&#xff0c;不过我没有迟到&#xff0c;刚刚好到公司&#xff0c;早上说的渗透测试的项目我并没有看见PM来找我&#xff0c;我还以为他把我忘了&#xff0c;到了中午我实在耐不住性子&#xff0c;就去问他了&#xff0c;他甩给我一些资产&#xff0c;当时觉得他…

TDengine 签约杭州云润,助力某大型水表企业时序数据处理

在智慧电表水表的数据采集和存储过程中&#xff0c;时序数据处理成为一个重要的问题。由于电表水表数据具有时间序列的特点&#xff0c;传统的数据库和数据处理方式往往难以满足大规模数据的高速采集、存储和实时分析需求。因此&#xff0c;越来越多的企业开始进行数据架构改造…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏8(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言配置可使用物品功能下载一些水果模型代码实现使用物品 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&#xff0c…

Java面对对象

Java面向对象 面对对象概述&#xff0c;类与对象&#xff0c;继承&#xff0c;重写与重载&#xff0c;多态&#xff0c;抽象&#xff0c;封装&#xff0c;包&#xff0c;泛型&#xff0c;异常 面对对象概述 什么是面向对象&#xff08;OOP&#xff09; 面向对象(Object Ori…

程控设备和电脑通信的总线和协议选择

文章目录 程控设备都通过什么协议和总线和电脑通信?工控设备都使用什么通信协议与电脑通信?各种工控设备通信协议的优缺点如何选择适合工控设备的通信协议?各种工控设备通信总线的优缺点如何判断一种总线是否适合特定的应用场景?程控设备都通过什么协议和总线和电脑通信? …

【python3.8 pre-commit报错】记录pre-commit install报错

一、问题 在执行pre-commit install --allow-missing-config命令时&#xff0c;报错 Traceback (most recent call last):File "C:\ProgramData\Anaconda3\envs\py38\lib\runpy.py", line 192, in _run_module_as_mainreturn _run_code(code, main_globals, None,F…

html,css,js速成

准备&#xff1a;vscode配好c&#xff0c;python&#xff0c;vue环境。 1. html hypertext markup language(超文本标记语言) 1. 基础语法 一个html元素由开始标签&#xff0c;填充文本&#xff0c;结束标签构成。 常见标签说明<b></b>粗体<i></i>…

免费分享一套SpringBoot+Vue药店(药房)管理系统,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue药店(药房)管理系统 &#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue药店(药房)管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue药店(药房)管理系统 Java毕业设计…

Jmeter学习系列之五:基础线程组(Thread Group)

前言 线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中,每个线程意味着模拟一个真实用户向服务器发起请求。 在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等等配置。 例如,如果你设置线程数为 100,那么 jmeter 将创建…

C语言字符字符串函数:strcpy、strcat、strcmp介绍和模拟实现以及stnrcpy、strncat、strncmp介绍(近万字详解,建议三连收藏)

目录 1.strcpy(字符串拷贝函数&#xff09; 1.1函数介绍 1.2函数使用示范 1.3函数模拟实现 2.strcat(字符串追加函数&#xff09; 2.1函数介绍 2.2函数使用示范&#xff1a; 2.3函数模拟实现 &#xff1a; 2.4思考&#xff1a;字符串可以自己给自己追加吗&#xff1f; …

leetcode-汇总区间

228. 汇总区间 题解&#xff1a; 这是一个区间合并的问题。我们可以遍历数组&#xff0c;对于每个元素&#xff0c;如果它与前一个元素的差值大于1&#xff0c;那么我们就找到了一个新的区间&#xff0c;将这个区间添加到结果列表中。否则&#xff0c;我们就更新当前区间的结…

EDI报文到Excel转换方案详解

EDI目前已广泛应用于电子、物流、汽车、零售等行业。 越来越多的交易伙伴要求建立EDI连接&#xff0c;通过EDI来对接上下游交易伙伴&#xff0c;收发业务单据。 当我们与新的交易伙伴建立EDI连接时&#xff0c;有多种实施方案可供选择&#xff0c;如果您的单据量较少&#xf…

OBB头篇 | 原创自研 | YOLOv8 更换 SEResNeXtBottleneck 头 | 附详细结构图

左图:ResNet 的一个模块。右图:复杂度大致相同的 ResNeXt 模块,基数(cardinality)为32。图中的一层表示为(输入通道数,滤波器大小,输出通道数)。 1. 思路 ResNeXt是微软研究院在2017年发表的成果。它的设计灵感来自于经典的ResNet模型,但ResNeXt有个特别之处:它采用…

UE4学习笔记 FPS游戏制作3 添加武器

文章目录 章节目标为骨骼添加武器挂载点添加武器 章节目标 本章节为手部添加一个武器挂载点&#xff0c;并挂载一个武器 为骨骼添加武器挂载点 添加挂载点需要以一个动画片段为基础&#xff0c;为骨骼添加挂载点。 首先找到我们需要的动画片段&#xff0c;通常是idle 双击打…