【问题标题】:Kill system call C, permission杀死系统调用C,权限
【发布时间】:2018-04-24 06:18:45
【问题描述】:

为什么在 C 中发送 kill 系统调用不需要 root 访问权限或 sudoer 权限?我试图使用 kill 系统调用终止 C 中的进程。我虽然它需要我以 root 身份运行进程,但它没有。通常通过bash终端发送kill系统调用时,我们需要使用sudo,那么为什么使用C时不需要呢?

【问题讨论】:

  • "我们必须使用 sudo" - 不,你不是。 kill 只是发送一个信号。您可以向自己的进程发送信号。

标签: c unix system-calls


【解决方案1】:

如果您在命令行上调用程序 kill 并且您没有所需的权限,那么它将失败。在 C 程序中使用 kill() 时也会发生同样的事情。有关信息,请参阅man 页面。

如果用户无权发送到列出的任何进程 ID,则返回值EPERM 的部分特别返回。以及说明:

对于有权限向pid指定的进程发送信号的进程,除非发送进程具有适当的权限,否则发送进程的真实或有效用户ID应与真实或保存的set-user-ID匹配接收过程。

【讨论】:

    猜你喜欢
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多