以编程方式请求root访问

时间:2012-06-17 15:19:27

标签: c linux sockets

  

可能重复:
  How to programmatically gain root privileges?

有没有办法以编程方式向C用户通过linux请求root用户访问?

我正在使用原始套接字,因此需要root访问权限。

1 个答案:

答案 0 :(得分:1)

惯用的方法是让你的程序suid-root,并让前两行main打开原始套接字并删除root。

从安全角度来看,这仍然不太理想,因为:

  1. 程序后期的妥协将使攻击者能够访问原始套接字,该套接字可用于许多恶意目的,可能获取足够的信息来提升权限。

  2. 任何suid-root二进制文件都可能受到动态链接器或在main之前运行的启动代码中的漏洞的影响。虽然这些已经变得越来越罕见,但即使在去年,使用LD_AUDIT内容在glibc的链接器中再次发现了一个。由于这个原因,许多注重安全的系统(例如Openwall Linux)完全禁止suid-root二进制文件。

  3. 更安全但更复杂的方法是让您的程序作为具有提升(但仍然是最小)权限的守护程序运行,并使CLI接口只是一个简单的包装器,通过简单的unix套接字与守护进程通信可以机械检查漏洞的协议。