我如何只允许在shell中运行某些命令?

时间:2015-10-31 16:26:32

标签: linux shell

我目前在C中编写自己的shell。这不是什么大事。它只有一些内置命令,比如我的一个命令是ifc,并且会在普通shell上执行与ifconfig命令相同的操作。但我想限制我的shell能够调用我的shell中未指定的其他命令。

例如。我使用ifc命令替换ifconfig,但ifconfig仍然可以从我的shell中调用,即使它没有内置。

这可能吗?如何做?

1 个答案:

答案 0 :(得分:1)

  1. 最简单的方法 - 只允许shell中的某些命令。
  2. 您可以构建共享库并使用LD_PRELOAD,将其附加到您的shell, 这个库捕获所有调用,如execl,并根据您的规则允许/禁止它。像防火墙一样,但是用于调用程序。
  3. 另一种方法是修改Linux内核,检查当前进程是否是你的shell,然后不要执行某些操作。
  4. 您可以为shell SELinux或AppArmor编写策略来执行(2)
  5. 之类的操作