gpt4 book ai didi

c - 如何在 Linux 中以编程方式限制程序运行时间、内存使用以及作为特定用户

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:08 25 4
gpt4 key购买 nike

是否有一种编程方式来限制持续时间、内存使用并以 C/C++ 或 Ruby 中的 Linux 程序执行的特权较低的用户身份运行?

因为系统或 `` 不能这样做。

sprintf(cmd_str,"/tmp/pro-%d < /tmp/in.txt > /tmp-%d.txt",id,id);
system(cmd_str); // in C

`/tmp/pro-#{id} < /tmp/in.txt > /tmp/out-#{id}.txt` // in Ruby

这两条语句都使该命令以与执行者相同的用户身份运行,并根据需要使用全部处理能力和内存。

最佳答案

使用seteuid(2)系统调用;设置调用进程的有效用户 ID。

以下是 Ruby 示例(参见 Process::Sys.seteuid)

Process.uid    # => 0
Process.euid # => 0
Process::Sys.seteuid(1000) # Etc::getpwnam('falsetru').uid == 1000
Process.uid # => 0
Process.euid # => 1000

关于c - 如何在 Linux 中以编程方式限制程序运行时间、内存使用以及作为特定用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com