从ac/c ++代码改变Linux用户的运行时间

Heg*_*ggy 0 c c++ unix shell

我想从ac/c ++代码改变Linux用户的运行时间.我怎么能这样做?

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

Sme*_*eey 5

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

有关更多信息,请参见此处和此处.