Linux踩坑——文件出现用户名为1000

Linux踩坑——文件出现用户名为1000

一、问题记录

今天要解决一个遗留问题,在开发板上存在一些文件(我们的应用程序相关文件),用户所有权和组ID都是1000,如图所示。
在这里插入图片描述

二、原因

查阅关于用户ID的相关资料:

  • 管理员UID为0:系统的管理员用户。
  • 系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
  • 普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。

这说明我们这个也是个普通用户创建的文件,但是考虑到该文件是在编译移植过得,于是去编译主机上找问题。发现编译主机用户ID确实是1000,说明可能是程序移植的时候,开发板直接识别到了主机ID号,但是开发板上只有root用户,于是直接使用了用户ID号(没有ID名字)
在这里插入图片描述

三、验证

将主机的文件所有权改为root权限,移植到开发板。
在这里插入图片描述
在这里插入图片描述
果然如此,改为root权限后移植过来的文件也是root用户了。
为了进一步验证该情况,创建了一个新的用户lgg,并将hello文件所有权改为lgg。能够看到lgg用户的ID是1001。
在这里插入图片描述
移植到开发板,能够看到此时文件的用户ID变为1001,说明该用户ID是根据主机的用户ID产生的。
在这里插入图片描述

四、补充

尝试复制新的文件去覆盖旧文件,发现用户所有权没有变化。
在这里插入图片描述
这是由于复制时,仅覆盖了文件内容,但是文件的元数据没有发生改变。这意味着,即使文件内容已经更新为用户B的版本,文件仍然属于用户A,并且继续保持用户A在文件上的权限控制。
覆盖操作实际上是将文件内容替换为新文件的内容,并不会改变文件的元数据,如所有权。这是因为Linux中文件的所有权是与文件的Inode相关联的,而Inode在覆盖操作中并未改变。
如果想同时更新所有权,需要在cp指令时加上"-p"选项,来保留文件的权限和所有者信息。
在这里插入图片描述

参考文献

https://www.cnblogs.com/dyanbk/p/11197724.html
https://blog.csdn.net/xuleisdjn/article/details/122038229

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值