根据其他一些问题和答案,我预计这两个命令的结果相同,但事实并非如此。
此外,从 sudo 运行一个进程,会因“打开的文件太多”而终止,而以 root 身份运行却不会。 2 之间到底有什么区别?
nati@server:/var/tmp$ sudo bash -c "ulimit -n"
1024
nati@server:/var/tmp$ sudo su
root@server:/var/tmp# ulimit -n
32000
答案1
/etc/security/limits.conf
由 所使用pam_limits
。su
、sudo
、 、 等认证模块login
根据PAM描述调用PAM模块。对于大多数发行版来说,这意味着在/etc/pam.d/
.例如,这可能是/etc/pam.d/sudo
;对于 Gentoo 来说,看起来像
auth include system-auth
account include system-auth
session include system-auth
哪里system-auth
有一行像
session required pam_limits.so
因此,资源限制按照 中的定义进行配置/etc/security/limits.conf
。
对于我的 Kali 安装,这看起来有所不同。pam_limits
不为 调用sudo
。显然,所有 Debian 锚都共享这个“功能”。实验/etc/security/limits.conf
证实了您的观察 - 在sudo
登录时我得到 1024,而我得到我在 中配置的内容limits.conf
。