运行start-stop-daemon的功能

时间:2018-04-25 18:15:34

标签: c linux

我想停止由root启动的进程(proc2) 通过我的无特权过程(proc1)。

我的流程proc1调用 execl(" / bin / sh"," sh"," -c"," / etc / init.d / proc2 restart",nullptr)。

/etc/init.d/proc2 restart 调用 start-stop-daemon

由于缺乏杀死proc2(suid root)的能力而失败

必须为非特权进程proc1设置哪种功能才能运行start-stop-daemon(kill proc2)?

1 个答案:

答案 0 :(得分:0)

我会将您的问题重写为如何从用户杠杆流程触发管理任务(需要root权限)?

设置可接受从非特权任务激活的特权转发的常用方法。在Unix / Linux世界中有两种经典的方法:

  1. 遗留方式:root所拥有的执行程序,其中seuid位设置且只能由允许执行特权任务的一组用户执行。但是setuid可执行文件具有高风险,因为任何错误都可能导致严重后果。众所周知sudo只是这种 root seutid 可执行文件的一个例子,但它已经过广泛测试
  2. 守护程序方式:特权守护程序等待某些事件并执行特权任务。与无特权世界的界面只是事件,因此风险通常被认为较低。该事件通常是目录中存在文件,或者是以fifo文件或网络数据包写入的消息。
  3. 无论哪种方式,您都必须考虑安全问题:如何确保只合法触发特权任务。