Linux ulimit-r返回的不同值

Linux ulimit-r返回的不同值,linux,security,real-time,account,limits,Linux,Security,Real Time,Account,Limits,我在我的系统范围/etc/security/limits.conf中添加了以下两行: * soft rtprio 55 * hard rtprio 55 系统重新启动后,根据我在计算机上访问用户帐户的方式,我会得到两种不同的结果 user@client# ssh user@server user@server# ulimit -r 55 然后我注销并以root身份再次登录 user@client# ssh root@server r

我在我的系统范围/etc/security/limits.conf中添加了以下两行:

*       soft    rtprio      55
*       hard    rtprio      55
系统重新启动后,根据我在计算机上访问用户帐户的方式,我会得到两种不同的结果

user@client# ssh user@server

user@server# ulimit -r
55
然后我注销并以root身份再次登录

user@client# ssh root@server

root@server# su - user
user@server# ulimit -r
0
我在.bashrc和其他任何地方都没有特殊设置,至少我认为是这样


为什么会这样

您必须查看
ssh
su
的PAM配置。我想他们是不一样的

例如,在我的系统中:

$ grep limit /etc/pam.d/su
# Sets up user limits, please uncomment and read /etc/security/limits.conf
# (Replaces the use of /etc/limits in old login)
# session    required   pam_limits.so

$ grep limit /etc/pam.d/sshd
# access limits that are hard to express in sshd_config.
# Set up user limits from /etc/security/limits.conf.
session    required     pam_limits.so

如您所见,在其中一种情况下,
pam\u limits
行被注释。我想你也有类似的东西。

我认为root没有这样的限制,在
su-user
之后,它继承了这个值。显然,su-给出了调用bash的环境限制设置。由于root用户是唯一一个必须在limits.conf中明确描述才能更改其限制值的用户,因此从root用户变为ulimit用户总是会给出错误的ulimit值。我尝试的是像
root-rtprio55
一样为root设置一行,然后上面的命令给出了相同的结果。你是对的:我修复了它,现在它可以正常工作了,谢谢!