我创建了一个脚本,我希望我们共享系统上的其他用户执行但不能读取。我将权限设置为可执行,但撤销了 R/W权利。
---x--x--x 1 dilletante staff 0 2013-04-02 11:42 expect.sh
然而脚本执行失败...原因很简单..解释器也需要阅读脚本
我想要一个解决方法(如果有的话)。我可以将它嵌入到某种编译语言中吗?那行得通吗? 如果是,您能否指出我可以学习如何这样做的资源..
最佳答案
shell 必须能够读取脚本才能执行它。如果它是一个脚本,你就是在要求不可能的事情。
您当然可以对可执行程序使用 111 权限(由 ld
命令生成,通常由您选择的已编译实现语言的编译器调用)。所有者可以随时更改读取程序的权限,但使用 511 权限比使用 111 权限更常规。
通常有针对特定脚本语言的编译器会生成与该脚本等效的 C 程序:
- Compilers for shell scripts .
- How to compile a Linux shell script as a binary .
- Compiling shell scripts .
-
shc
— shell script compiler .
等等
关于linux - 我希望 shell 脚本可执行但不可读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15757357/