【发布时间】:2012-10-17 17:52:58
【问题描述】:
我想以另一个用户(Other 然后是 root)的身份运行 linux 应用程序。 在我的应用程序中,我们编写了套接字程序,并且我正在使用原始套接字来 ping 数据库服务器。当我们以 root 身份运行应用程序时,它可以 ping 服务器。但是当它以除 root 以外的普通用户身份运行时,它无法 ping 数据库服务器。
你能告诉我如何用普通用户运行这个过程吗? 我们如何检查进程与哪个用户一起运行?
谢谢,
【问题讨论】:
-
这个问题的标签看起来很杂乱,没有多大意义。如果这是一个 linux 内核模块,那么你就不会遇到这个问题,但同时,如果你必须在嵌入式系统上以 root 身份运行又有什么关系呢?
-
人们似乎认为困难在于以另一个用户身份启动程序,但我认为这不是对问题的准确解读。相反,我认为程序在以非特权用户身份运行时 fails (因此这里非常重要)。可能的困难是尝试执行特权操作,例如文字 ICMP ping、使用没有 CAP_NET_RAW 的原始套接字或在本地端使用特权端口号。立即围绕失败的系统发布代码会有所帮助。
标签: database linux linux-kernel embedded