【问题标题】:change Linux users run time, from a c/c++ code从 c/c++ 代码更改 Linux 用户运行时间
【发布时间】:2016-06-16 11:39:42
【问题描述】:

我想从 c/c++ 代码更改 Linux 用户运行时间。我怎么能这样做?

可以说,我正在从非 root 用户的 Linux 用户“abc”运行 c/c++ 二进制文件。在 c/c++ 代码中,我想切换到用户“xyz”来执行特定任务,然后重新获得“abc”的权限。

【问题讨论】:

  • “一样的”??如...?

标签: c++ c shell unix


【解决方案1】:

您不能随意更改用户 ID(除非您是 root),因为这将是一个安全漏洞。但是,可以将您的用户 ID 专门切换为拥有相关可执行文件的用户的用户 ID(而不是 运行 可执行文件的用户)。这是函数setuid()。为此,程序本身必须设置其setuid 标志。

请参阅herehere 了解更多信息。

【讨论】:

  • 维基百科提到了setgid,但只是为了强调:不要忘记检查setgid。对于许多应用程序,仅更改组就足够了。
猜你喜欢
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多