添加非root用户通常无法使用的“有用”系统调用

时间:2010-10-28 00:36:38

标签: linux operating-system linux-kernel system-calls

我实现了一个功能有限的简单Hello World系统调用 - 只需从用户模式转换到内核模式,打印一条用内核消息记录的消息,然后转换回用户模式。

额外功劳的下一步是添加一个有用的(新)系统调用,这对非root用户通常不可用。

系统调用可以很简单,但是我很难想出任何想法......有人能指出我正确的方向还是想要轻松实现的东西? (我们给出的提示是使用新的系统调用进行调试!)

5 个答案:

答案 0 :(得分:2)

内核结构中有大量关于进程的信息:页面位置,内存统计信息,I / O统计信息和文件句柄信息,CPU调度信息等。虽然大多数信息可能通过诸如proc文件系统,以编程方式获取该信息可能需要解析proc输出等。提供一种获取有关进程的此类信息的方法(可能不太关注可能出现的安全问题)时间)可能有用。

答案 1 :(得分:1)

用户通常不能将他们自己拥有的文件的所有权归给另一个用户(当然,这有充分理由!)。你可以实现一个系统调用来做到这一点。别忘了清除setuid位!

答案 2 :(得分:0)

如何将当前进程的uid设置为0,本质上是一个“后门”系统调用,为任何调用它的用户提供root访问权限?

答案 3 :(得分:-1)

也许是一个新的调用来专门更新受信任的NTP服务器的系统日期和时间? 我认为普通用户无法自行完成此操作。

以某种方式更改网络设置?释放/更新DHCP租约,或实现简单的网络位置,这些位置是存储在根写可配置文件中的预定义批量设置。

答案 4 :(得分:-1)

最简单的事情 - 进行调试 - 会创建一个系统调用,让您直接访问内核的“printk”调用!