有没有办法以编程方式向C用户通过linux请求root用户访问?
我正在使用原始套接字,因此需要root访问权限。
答案 0 :(得分:1)
惯用的方法是让你的程序suid-root,并让前两行main
打开原始套接字并删除root。
从安全角度来看,这仍然不太理想,因为:
程序后期的妥协将使攻击者能够访问原始套接字,该套接字可用于许多恶意目的,可能获取足够的信息来提升权限。
任何suid-root二进制文件都可能受到动态链接器或在main
之前运行的启动代码中的漏洞的影响。虽然这些已经变得越来越罕见,但即使在去年,使用LD_AUDIT
内容在glibc的链接器中再次发现了一个。由于这个原因,许多注重安全的系统(例如Openwall Linux)完全禁止suid-root二进制文件。
更安全但更复杂的方法是让您的程序作为具有提升(但仍然是最小)权限的守护程序运行,并使CLI接口只是一个简单的包装器,通过简单的unix套接字与守护进程通信可以机械检查漏洞的协议。