所以我的最终目标是在启动时在我的Beaglebone Black上运行一个程序(将其添加到init文件中),该程序将执行其他程序。正在启动的其他程序需要sudo权限才能启动。从研究来看,我已经看到了几种方法可以做到这一点,但我不知道哪一种方法是正确的"。有人能指出我正确的方向吗?
这是我正在测试的代码,用于启动众多程序之一:
#include <iostream>
#include <unistd.h>
using std::cout;
using std::cin;
int main()
{
pid_t pid;
pid = fork();
if (0 == pid)
{
setreuid(geteuid(), getuid());
execl("/usr/local/bin/osmo-trx", "osmo-trx", "-f", NULL);
cout << "\n\n***Something went wrong starting osmo-trx***\n\n";
}
else if (0 < pid) ;
else
{
cout << "\n\nSomething went wrong...\n\n";
return -1;
}
return 0;
}
我无法弄清楚正确的问题。以下是我所拥有的一些内容,尽管它们可能会偏离我应该走的道路。
我可以用sudo权限执行程序吗?试过the uid但没有运气。
如果我给debian用户root权限,我能运行任何程序吗?试图editing my visudo并添加debian但没有成功。以下是文件:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
debian ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
%admin ALL=(ALL) ALL</code>
- 注意:对于史诗缩进感到抱歉,但编辑在给我突出显示代码时遇到了麻烦.--
请帮忙......