在没有sudo的情况下运行root拥有的二进制文件


12

我在求职面试中有一个问题:

如何在user1没有sudo特权且没有访问该root帐户的情况下与用户一起执行(运行)程序:

$ whoami
user1
$ ls -l ~/binary_program
-rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program

Answers:


17

由于您具有阅读权限:

$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary

当然,这不会自动神奇地授予您升级的特权。您仍将以常规用户身份执行该二进制文件。


4
@ user2555595恐怕您错了。尝试删除您拥有的文件上的execute位并执行它。在没有设置执行位的情况下执行文件时,即使root也会被“拒绝权限”。
约瑟夫R.14年

您说得对,谢谢您提供的信息
user2555595

5
@ user2555595这仅适用于脚本,不适用于二进制文件。更具体地说,bash如果bash调用POSIX shell脚本作为解释器,则使用POSIX脚本。
Thomas Nyman 2014年

谢谢您的信息,人们!祝你今天愉快!
inivanoff14年

2
@ inivanoff1请不要忘记将答案之一标记为“已接受”,以便人们知道此问题已解决。
约瑟夫R.14年

20

您可以直接使用Linux 动态链接器/加载器来运行已阅读但没有执行权限的ELF可执行文件

$ /lib/ld-linux.so.* /home/user1/binary_program

通常执行ELF可执行文件时,将使用存储在.interp程序代码部分中的动态链接器。直接调用动态链接程序(外部面试)的原因包括将其传递给命令行选项以修改其行为。

请注意,动态链接程序的实际位置可能非常取决于环境,例如,在64位Ubuntu中,链接程序位于/lib64/ld-linux-x86-64.so.2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.