查找目录并在其中启动可执行文件

cif*_*ifz 2 bash exec find

我要找到一个名为'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脚本的新手.感谢任何帮助,非常感谢.

Gil*_*il' 5

当您通过该find命令运行B时,当前目录是包含A的目录(即A的父目录),而不是A.

如果你跑,你会得到正确的目录find -path '*/A/B' -execdir {} \;.

这可能是也可能不是解决现实问题的正确方法.在这个例子中,B没有用处,所以很难猜出现实世界的问题是什么.你考虑过sudo吗?