我可以阻止用户执行二进制文件吗?

时间:2014-10-09 23:35:36

标签: linux sh

如果我想创建二进制可执行文件,并且我想阻止某人在我的目录中执行它,但我仍然希望它们能够将它复制到自己的区域,我必须给它们读取权限,但是没有执行权限。

现在我意识到,对于用高级语言编写的文件,比如python,执行权限并不是一个真正的概念。任何具有读取权限的人都可以使用命令(python,例如.py文件)来运行它们,这是当某人"执行"时实际发生的事情。它们。

但我想,二进制文件有所不同。它们可以在没有读取权限的情况下执行,因为它们确实正在执行,而不仅仅是拖拽到需要读取权限的解释器命令。

但后来我了解了sh命令,它似乎可以作用于二进制文件(不像bash,它拒绝)。有没有办法禁用它,或屏蔽二进制文件?

1 个答案:

答案 0 :(得分:1)

笏?


yac@rainbowdash % vim a.c
yac@rainbowdash % gcc a.c
yac@rainbowdash % ./a.out
a
yac@rainbowdash % ls -l a.out
-rwx------ 1 yac yac 11877 Oct 10 02:27 a.out*
yac@rainbowdash % chmod -x a.out
yac@rainbowdash % ./a.out
zsh: permission denied: ./a.out
yac@rainbowdash % sh ./a.out
./a.out: ./a.out: cannot execute binary file
yac@rainbowdash % cat a.c
#include <stdio.h>
void main(void) {printf("a\n");}

但如果他们无论如何都可以阅读,那么执行只是

yac@rainbowdash % cp a.out b.out
yac@rainbowdash % chmod +x b.out
yac@rainbowdash % ./b.out
a

一份副本

如果你的顾虑是&#34;在我的目录中执行&#34;他们可以

% cd your/directory && ./their/executable/copy