【发布时间】:2015-04-04 01:12:56
【问题描述】:
我正在编写一段 C 代码,它将在 system("sudo ip route ...") 函数调用中运行一些 sudo 命令。
这个调用是在一个由主线程创建的pthread中完成的,主程序在启动时是用sudo ./program执行的。
当我运行程序时,Ubuntu 提示我输入任何人的密码:
[sudo] password for nobody:
我也尝试直接执行system("ip route ..."),但它给了我负返回意味着它没有被执行。
在线程中应该怎么做才能让system()call使用继承自主程序的sudo权限?
【问题讨论】:
-
Put down that chocolate-covered
sudobanana and step away. 你已经隐藏了你的真正问题,即为什么当我的程序以超级用户身份运行时system("something")不起作用? i> 为了让人们回答这个问题,你必须实际告诉人们你正在尝试运行什么命令,对于初学者来说。 -
@JdeBP 我已经编辑了,是一个
ip route命令来操作路由表。 -
@JdeBP 虽然我有点同意这里的观点,但你的文章糟透了它旨在批评的香蕉。使用荒谬的混合隐喻总是非常可爱和有趣,但是 - 与 E. S. Raymond 形成鲜明对比,他的 认真 工作你显然希望将那块 ___ 归类 - 你显然不具备知识或意志力将任何东西添加到伪简洁/“看着我,我很酷”的标题。请停止在互联网上进一步泼你的口水;如果你想认真就认真,如果你想当个混蛋,就私下做。
-
P.S.我相信here is what you meant to say,以后请使用它。
-
你的
/bin/sh是什么外壳?当您以 root 身份在终端中启动ip route ...命令时会发生什么?