执行“chmod 666 ld-2.17.so” - 我该如何恢复?

执行“chmod 666 ld-2.17.so” - 我该如何恢复?

在尝试了解如何ld-2.17.so更改chmod可执行文件本身的权限时,并思考是否可以更改其自身的权限ld-2.17.so

chmod 666 ld-2.17.so在一台测试 centos 7 机器上运行,之后我无法运行任何命令,因为大多数命令都使用ld-2.17.so.

我已经读过这个答案,从 ld-linux.so 删除执行权限中恢复

它给出了一个非常笼统的答案,但没有给出具体的解决方案。 Centos7中有什么地方可以找到ld-2.17.so缓存来恢复/lib64/ld-2.17.so权限恢复正常吗?

编辑:我尝试过从其他计算机到受影响的计算机访问scp此文件/lib64/ld-2.17.so,但出现权限被拒绝错误。

先感谢您

答案1

ld.so如果您有一个可以写入的可执行文件,您可以使用 bash将其内容复制到该文件read

while IFS= read -d '' -r  line; do printf "%s\0" "$line"; done > executable-file < /lib64/ld-2.17.so

例子:

bash-4.2$ ll foo
-rwxr-xr-x 1 muru muru 29K Aug 23 13:02 foo*
bash-4.2$ while IFS= read -d '' -r  line; do printf "%s\0" "$line"; done > foo < /lib64/ld-2.17.so
bash-4.2$ ./foo
Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]
You have invoked `ld.so', the helper program for shared library executables.
...

然后你可以使用它来运行chmod

bash-4.2$ ./foo /bin/chmod
/bin/chmod: missing operand
Try '/bin/chmod --help' for more information.

相关内容