如何在没有执行权限的情况下执行文件

如何在没有执行权限的情况下执行文件

假设user想要执行一个脚本test.shls -l test.sh给出

 -rwxrwxr-- 1 root root 96 Feb 25 21:44 test.sh

现在,如果user不想复制test.sh(他确实这样做了chmod +x),他可以简单地这样做

sh test.sh

执行test.sh

是否有一种类似的方法来执行没有执行权限的二进制程序?

答案1

基本上,这与众所周知的著名 UNIX 技术面试问题之一是一样的:

假设具有 root 访问权限的人运行了命令chmod -R 444 /并使chmod二进制文件不可执行。你如何从中恢复?

有一个 perl 答案,有一个,它基本上是运行一个不可执行的程序,chmod在这种情况下:

/lib/ld-linux.so /bin/chmod +x /bin/chmod

我认为您可以将其应用于您知道可执行的任何其他程序。否则准备好迎接可能发生的灾难

PS>/lib/ld-linux.so名称可能有所不同。因此,如果直接匹配不可用,请四处寻找类似名称的so。例如,在我的 CentOS 6 服务器上,它是/lib/ld-linux.so.2一个指向/lib/ld-2.12.so.因此,您的里程可能会有所不同。

答案2

如果用户没有执行权限并且不能或不愿意更改它,则他们必须作为具有执行权限的组或用户来执行它。

如果他们知道 root 密码,那么:

su -c <executable>

如果他们不知道 root 密码,但受信任,sudo则:

sudo <executable>

如果他们不知道 root 密码并且不受sudo权限信任,那么他们就有理由运行可执行文件。

相关内容