gpt4 book ai didi

linux - 目录具有 777 权限,但如果是 root 或用户拥有,则行为不同

转载 作者:太空宇宙 更新时间:2023-11-04 03:56:23 28 4
gpt4 key购买 nike

这是一位同事刚刚发现的一件奇怪的事情。如标题所示,/var/tmp 的权限为 777。我们有一个必须使用的库(但没有源访问权限,令人失望),它在使用时会创建一个临时文件来完成其工作(不知道它实际上对该文件做了什么),然后立即删除它。至少,这就是应该发生的事情。当/var/tmp 为 root:root 所有时,这些文件永远不会被删除,也永远不会关闭。如果我们将所有者更改为 user:user ,它会完美运行,文件的创建和删除速度比检测到它们的速度要快。这只发生在他的 Ubuntu 14.04 32 位机器上。我们还有 Ubuntu 12.04 64 位、Debian 7 32 和 64 位、CentOS6 32 和 64 位以及 CentOS5 32 位,这种行为在其他任何操作系统上都没有出现,无论谁拥有/var/tmp,它们都完全按照预期工作

这是一个问题,因为在该库执行大约 1000 次操作后,该进程会达到文件限制并拒绝继续。

谁能想到一种情况,目录可以拥有 777 权限(尽管由 root 拥有),允许用户进程创建文件,但随后无法删除该文件?

非常感谢!

编辑:进程以/var/tmp 被 chowned 的用户身份运行,以使其正常工作。

$ ls -ltrd /var/tmp/*
drwxr-xr-x 2 user user 4096 Oct 7 2013 /var/tmp/audacity-user
drwx------ 2 root root 4096 Nov 28 2013 /var/tmp/kdecache-root
drwx------ 3 user user 4096 Apr 25 18:07 /var/tmp/kdecache-user
-rw------- 1 root root 3 Jul 3 11:07 /var/tmp/zhanceqDC3256C54D298DEE.dat
-rw------- 1 user user 3 Jul 3 14:25 /var/tmp/homjeaocAADD02BC6EDB687D.tmp

当问题发生时,我试图让我的同事提供类似的目录列表,但他突然走了出去,可能要到明天才能回来。

最佳答案

没关系,问题已经被发现了。不知道事件的完整顺序,但问题是“zhanceqDC3256C54D298DEE.dat”文件。显然这个库也创建了这个文件并可能删除了它:当该目录由root拥有时,即使有777权限也无法删除该文件。当目录由用户拥有时,它可以。修复它的另一种方法是简单地 sudo rm 文件并让库自行创建它。这个过程只能以用户身份运行,而不是以root身份运行,但为了测试它,我以root身份(和第三个用户)运行它,并且在每种情况下,它都会创建一个具有相关用户所有权的不同文件(我猜是某种用户绑定(bind)的guid),所以这个人如何设法进入这种情况可能永远未知。

关于linux - 目录具有 777 权限,但如果是 root 或用户拥有,则行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555055/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com