我要找到一个名为'A'的目录,然后启动一个名为'B'的可执行文件,其中包含一个路径作为参数,并且有一行带有execl():
execl("./C","C",path,(char*)0);
perror("Exec failed");
Run Code Online (Sandbox Code Playgroud)
其中C在'A'中并且设置了suid位.
.我想到了类似的东西:
find -name A -execdir {}/B path \
Run Code Online (Sandbox Code Playgroud)
但是我得到的是:
Exec failed: Permission denied
Run Code Online (Sandbox Code Playgroud)
怎么了 ?从A发射B给我没有错误.
对不起,如果这是一个愚蠢的问题,我是bash脚本的新手.感谢任何帮助,非常感谢.
当您通过该find命令运行B时,当前目录是包含A的目录(即A的父目录),而不是A.
如果你跑,你会得到正确的目录find -path '*/A/B' -execdir {} \;.
这可能是也可能不是解决现实问题的正确方法.在这个例子中,B没有用处,所以很难猜出现实世界的问题是什么.你考虑过sudo吗?