加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 由于setrlimit是基于进程的,操作系统如何在/etc/securit

发布时间:2020-12-15 21:15:26 所属栏目:安全 来源:网络整理
导读:我注意到在/etc/security/limits.conf中,限制是基于每个用户(或每个组)配置的,例如: @faculty hard nproc 50 我假设它是setrlimit来完成设置限制的工作,但是setrlimit在进程的基础上工作,也就是说,它只对其调用进程设置资源限制,因此它不能对用户设置限制,
我注意到在/etc/security/limits.conf中,限制是基于每个用户(或每个组)配置的,例如:
@faculty hard nproc 50

我假设它是setrlimit来完成设置限制的工作,但是setrlimit在进程的基础上工作,也就是说,它只对其调用进程设置资源限制,因此它不能对用户设置限制,操作系统如何荣誉limits.conf中配置的资源限制?

另一个问题,
如果某个进程超过其资源配额,它会被杀死吗?如果是这样,通过什么信号?谢谢.

解决方法

您可以为每个用户/组设置硬限制和软限制.为了能够更改自己的硬限制,该进程需要具有特权(root).当流程试图超过其软限制时会发生什么情况取决于资源:

>数据限制 – malloc和new会失败
>打开文件 – 创建文件描述符文件(open,creat,socket,accept等)
>核心 – 核心文件将被截断
>文件大小 – SIGXFSZ被传递给违规线程.
> stack – SIGSEGV交付给违规线程
>等

查看on setrlimit manpage以获取更多信息.

在limits.conf中,您为指定的用户/组分配每个进程的限制.因此,如果为用户X设置10MiB堆栈限制,则意味着使用用户X凭据执行的每个进程都设置了10MB堆栈限制.它不是描述用户X拥有的所有进程的“资源总和”的限制

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读