错误描述
1)在虚拟机中:
2)在Secure CRT中:
错误原因:资源限制
1)由userA 内存限制大于 userB,欲从userB切到userA,报此故障
资源限制修改方式: 具体格式请参见注释
vim /etc/security/limits.conf
这个错误恰好是在我做资源限制实验时遇到的,哈哈。。
2) 查阅资料时我发现还有帖子表示切换到未设置密码的用户时也会报此错误
设置密码
sudo passwd
原理解释
查看其中su-l,由system-auth,含有“认证”前缀,查看
发现系统认证配置文件确实依赖于pam-limits.so,说明su切换用户时确实是要检查资源是否足够的。
至于为什么Linux系统这样设计,可能是因为userA资源受到限制,如果切换到超过限制的userB会破坏这一限制。就像实参const传入const形参一样。但我认为从userA传到userB时环境限制取两者min限制即可。
所以如果涉及用户切换,不应连续切换用户,如root->userA->userB;应在一个用户完成之后exit,采用root->userA->root->usrB->root的方式,可以避免此类错误。
版权声明:本文为a_vegetable原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。