gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:58 24 4
gpt4 key购买 nike

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

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

但我认为二进制文件是不同的。它们可以在没有读取权限的情况下执行,因为它们确实在被执行,而不仅仅是被移交给需要读取权限的解释器命令。

但后来我了解了 sh 命令,它似乎能够对二进制文件执行操作(不像 bash,它拒绝这样做)。有没有办法禁用它,或者屏蔽二进制文件?

最佳答案

什么?


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

复制一份

如果您关心的是“在我的目录中执行”,他们可以

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

关于linux - 我可以阻止用户执行二进制文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com