【问题标题】:Odd permissions change when using "sudo tar" in bash在 bash 中使用“sudo tar”时奇怪的权限更改
【发布时间】:2014-12-04 21:56:26
【问题描述】:

我在使用 sudo 进行 tar 提取时遇到问题,该计算机与创建存档的计算机不同。当我提取时,不仅提取的文件不归root所有,而且它们的所有者和组是“522”。这也将目标文件夹本身的所有者和组更改为“522”。

我的开头是: /home/otheruser/archive.tar.gz 所有者:otheruser,组:otheruser; 在计算机 1 上创建的文件,移动到计算机 2 上的 /home/otheruser/

命令(来自计算机 2):

sudo tar -xf /home/otheruser/archive.tar.gz -C /home/myusername/targetfolder

结果: 提取的文件和/home/myusername/targetfolder 现在将“522”作为所有者和组。所以现在我需要使用 sudo 来查看应该属于我的文件夹中的文件。

如果我抛出 --no-same-owner 标志,目标目录权限问题就会消失,但文件仍归 root 所有。投掷--owner=myusername 标志也不会改变任何东西。有什么想法吗?

谢谢

【问题讨论】:

  • 这不是一个 bash 问题
  • their owner and group is "522". This also changes the owner and group of the target folder itself to "522". 所有者和组是522 中的前两个数字。所有者有读执行,组有写,其他有写
  • Stack Overflow 的 topic 正在编程,这个问题似乎与此无关。我认为您会在更合适的 Stack Exchange 站点(例如 Unix & LinuxSuper User)中获得更好、更多的响应。请考虑阅读about how to ask good questions。对您的问题的简短回答是:TAR 存储数字 UID/GID,当以 root 身份提取时,它们将放置在提取的文件中。
  • 谢谢萨米·莱恩。一段时间以来,我一直在从各种堆栈交换网站上从其他人的问题中获得答案,但我对自己的问题还是陌生的,所以知道问他们会很好。

标签: linux tar sudo


【解决方案1】:

显然,computer1 和computer2 上otheruser 的用户ID 不同(您可以使用id 命令验证这一点)并且创建或恢复tar/etc/passwd 中找不到otheruser。作为documented--owner= 标志不影响从档案中提取。

如果您希望提取的文件归myusername 所有,只需以myusername 登录并运行tar,不带sudo,但使用选项-o

tar -oxf /home/otheruser/archive.tar.gz -C /home/myusername/targetfolder

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 2016-10-14
    • 2012-05-08
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2011-09-12
    相关资源
    最近更新 更多