【疑难杂症】Linux系统root用户下执行su登录其他用户失败
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
·
问题
在Linux系统上,从root用户切换到oracle用户时报错 su: cannot open session: Permission denied 如下:

分析
定位原因1
- 分析登录日志,可以看到时登录的时候limit中的
memlock设置失败,导致用户登录失败:

- limit配置表示限制该用户最大可以打开的文件数量、会话数量、内存等,使用
ulimit -a命令查看当前的配置:

- 从上图可以看到,即使我现在使用的是root用户,但是最大的
memlock也只有64 字节,并且,尝试设置memlock失败了

- 之所以设置失败,是因为我当前的服务器不是真实的物理机,而是docker,所以没有权限

定位原因2
- 确定是
limit的配置导致的登录失败,按照百度的解决方案,尝试修改/etc/security/limits.conf后重新登录,结果还是登录失败,控制台和日志报错与之前完全一样

- 经过一番摸索之后发现:在系统的
/etc/security/limits.d/下的配置文件同样也是用来配置limit,并且 优先等级 高于/etc/security/limits.conf

- 而且在这里,可以看到一个安装 oracle 软件自动生成的conf文件

修改完该文件之后,终于可以登录用户

结论
- 登录失败确实是因为
limit.conf的配置太小导致 /etc/security/limits.d/下的配置文件的优先级高于/etc/security/limits.conf- docker服务器下,即便是使用root用户,部分配置项也无法修改,比如这里的
ulimit -l 66
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e
added ecosystem file for PM2 5 年前
5def40a3
Add host customization support for the NodeJS version 5 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)