使用多个用户id运行单个进程



我有一个shell脚本(Bash),它反过来调用proc二进制。使用scheduled在指定时间调度,用户id为c62feed。我们有其他后台系统使用的id,如recoaccreter。我最近注意到这个脚本是使用c62feed运行的,但是这个脚本创建的输出文件部分使用c62feed,另一半使用reco。所有这些文件都是在同一时间创建的,因此不可能有人手动使用reco并运行此进程。我在下面展示了示例输出文件的详细信息:

-rw-rw-rw-   1 reco     162399477 May  8 12:03 MHS_PA
-rw-rw-rw-   1 reco     32012461 May  8 12:03 MHS_NJ
-rw-rw-rw-   1 c62feed  21707404 May  8 12:03 MHS_PC
-rw-rw-rw-   1 reco     27782603 May  8 12:03 MHS_MB
-rw-rw-rw-   1 c62feed  71198525 May  8 12:03 MHS_PW

您可以看到,文件已经使用这两种可能创建。我想知道这是否可能。我检查了这个脚本和proc。没有地方使用reco id。

我想知道是否有可能在一个时间用户id将在一个时间切换?

请注意,如果文件MHS_PA, MHS_NJ和MHS_MB之前是由reco创建的,当程序由c62feed运行时,除非程序首先使用unlink()删除文件,否则这些文件将保留为reco所有。666权限是有问题的;公共写许可总是有问题的。但这确实意味着你的程序可以写入不属于c62feed的文件。

您应该小心地删除文件(或移动它们,或移动目录),然后再试一次。我希望您会发现新创建的文件始终属于c62feed

对于没有使用root权限运行的进程来说,在它运行的时候改变UID的方法并不多。一个例外是,如果程序将SUID(设置用户ID)位设置为一个用户,并且由另一个用户运行。

proc程序的权限是什么?

相关内容

  • 没有找到相关文章

最新更新