Hul*_*ulk 9 scripting linux shell
是否有可能阻止任何用户不使用诸如 ls、rm 和其他可能损害系统的系统命令之类的命令。但是用户应该能够执行shell程序。
chr*_*ris 11
你的问题应该是:
我不信任我的用户。愚蠢的人在互联网上看到一些东西并在不了解它的作用的情况下尝试它。狡猾的人喜欢四处窥探,查看其他人的文件并窃取他们的想法。和懒惰的人,不要让我开始谈论懒惰的人。
我如何保护我的系统和我的用户免受我的用户的影响?
首先,unix 有一个非常全面的文件系统权限系统。 这似乎是一个关于 Unix 文件系统权限的不错的教程。其要点是可以设置目录,以便用户可以进入目录并可以在该目录外运行程序,但不能查看该目录的内容。例如,如果您在 /home 上执行此操作,如果用户在 /home 上运行 ls,则会收到权限被拒绝错误。
如果你真的很害怕你的用户,并且想把他们放在一个超大类型的受限环境中,使用像 freebsd 的 jails 或 solaris 的 zone 之类的东西——每个用户都有自己量身定制的环境。对于添加的点,请使用 ZFS,因此您可以在他们登录时拍摄环境快照,因此如果他们删除了他们的文件,您只需将它们从快照中拉出即可。
要完全满足您的要求,需要做好三件事:
腰带、吊带和一把订书钉枪,以备不时之需。那里很难出错。
AppArmor 很有趣,因为特定可执行文件的 MAC 由其所有子项继承。将用户的登录名/bin/bash-bob设置为 ,为该特定二进制权限设置 AppArmor 配置文件,他们摆脱该权限监狱的唯一方法是通过内核漏洞利用。如果某些懒惰的安装脚本/var/opt/vendor/tmp由于某些愚蠢的原因使全局可写,则/bin/bash-bob用作其 shell的用户将无法在那里编写. 将 bash-bob 配置文件设置为仅允许写入其主目录和/tmp,并且不能利用此类权限错误。即使他们以某种方式找到了 root 密码,AppArmor 配置文件/bin/bash-bob即使在他们su启动后仍然适用,因为它产生su的bash进程是/bin/bash-bob.
困难的部分是构建 AppArmor 配置文件。
在我看来,您只需要第 2 步和第 3 步,因为它们结合起来都可以防止在您在这两个步骤中设置的精心构建的盒子之外做任何有害的事情。
小智 4
那么,您可以将用户的 shell 设置为您编写的程序,只允许他们运行某些 shell 脚本。
当然,这只能与程序和 shell 脚本一样安全;实际上,这种受限制的 shell 通常无法抵御聪明的攻击者。
| 归档时间: |
|
| 查看次数: |
28321 次 |
| 最近记录: |