是否可以为exec'ed子进程更改“/ proc / self / exe”的值?

问题描述 投票:1回答:1

我正在尝试使用exec系统调用来启动另一个可执行文件,但该可执行文件在readlink()上使用/proc/self/exe来确定其文件位置。我希望它认为它与父可执行文件具有相同的位置,但它确定它的实际位置。我认为通过使用LD_PRELOAD来拦截readlink()调用,我有可能完成这样的事情,但有没有更容易或更直接的方法来实现这一目标?我只关注可以在父可执行文件中实现的解决方案,修改子项不是一个选项。

c linux exec readlink
1个回答
1
投票

创建可执行文件的硬链接:


$sudo ln /bin/ls ./ls
[sudo] password for plasser: 

# check it:
$ls -l ls
-rwxr-xr-x 2 root root 110080 mrt 10  2016 ls

#call it:
$./ls -l /proc/self/exe
lrwxrwxrwx 1 plasser uri 0 mrt  3 18:36 /proc/self/exe -> /home/plasser/krant/ls
$
© www.soinside.com 2019 - 2024. All rights reserved.