我需要知道是否可以在可加载内核模块中拦截用户执行的命令。我知道可以拦截系统调用,例如open()。但我需要做的是拦截用户输入的命令/进程并添加一些验证。例如,如果用户输入cp命令,则在执行命令之前我需要对其执行一些验证。如果我们不能在LKM中做到这一点,有哪些替代方法?
答案 0 :(得分:1)
你需要查看execvp()
和朋友的实际系统调用次数(可能是1,可能是2 - 可能更多,但可能不是),然后拦截这些系统调用。您可能还需要担心posix_spawn()
和朋友。它们是新流程运行的唯一方式。没有任何其他方法可以拦截它们。
答案 1 :(得分:1)