在系统调用中创建用户

Create user inside a syscall

是否可以像 useradd 命令那样在 Linux 内核的系统调用中创建用户?

我在某处看到系统调用不能使用 exec 家族,是真的吗?

在内核中,用户由他们的 ID(一个数字)标识,这是内核所知道的关于用户的唯一信息。

就内核而言,不需要创建用户:要使进程拥有不同的用户,只需调用 setuid() 并使用不同的号码即可。

用户 ID 和其他信息(名称、主目录等)之间的映射完全在用户 space 中完成。并且用户信息存储在/etc/passwd这样的文件中只是一种约定;有些系统使用不同的用户(例如 Android 为每个应用程序提供自己的用户 ID)。


如果你真的想执行一个用户态程序,调用call_usermodehelper()