在 Linux 下,是否可以为特定用户组设置可执行文件白名单?我需要他们无法使用 make、gcc 和可移动磁盘上的可执行文件。
如何做到这一点?
编辑,让我更好地解释一下。
我正在处理一个高中 IT 系统,年轻的极客(在课堂上)想玩、上网、破坏电脑。实现这一目标的主要步骤是删除他们熟悉的系统并在所有电脑上安装 Ubuntu。这实际上很有效,但最近发生的事件证明这还不够。
我想允许他们执行某些安全程序,如 Open Office,并否定任何其他程序,无论是预装的软件、他们随身携带的 USB 驱动器、下载的程序还是他们在现场编写的脚本。
可以删除 PC 上任何文件的“x”权限,但这当然是不切实际的。此外,他们可以运行他们下载的任何内容。
我认为最好的解决方案是制作一个安全程序白名单并拒绝任何其他程序,但我真的不知道该怎么做。任何想法都是有帮助的。
答案1
从 /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin 中的文件中删除其他权限(等等,令人厌烦!)
由于他们的用户不在 root 组中,因此他们无法运行任何程序。
要允许某些程序,请将其他权限设置为 rx (5)...这将允许他们使用该程序。
您还可以创建一个组并将某些用户添加到该组。更改相关程序的组将仅允许那些用户访问。这将为一组特权更高的学生提供更多的自由。
当然,如果经历了这一切之后……仍有少数人可以上网做任何事情……那就表扬他们吧!祝贺他们!因为他们仍然知道如何思考和解决问题。
我不建议对所有程序进行全盘 chmod...您仍然需要它们才能登录、启动 GUI 等等。
这实际上只是提高了标准,因为我能想到几种解决这个问题的方法。(但话又说回来,我认为我在学习的道路上走得更远了。)
答案2
我不清楚你的意思,但如果你想允许特定组的用户运行某些命令,那么可以这样做/etc/sudoers
:
%dev user=(root)NOPASSWD:/usr/bin/make, /usr/bin/gcc