• 【问题处理】银河麒麟操作系统实例分享,服务器操作系统VNC远程问题分析


    1.服务器环境以及配置

    【内核版本】

    4.19.90-23.8.v2101.ky10.aarch64

    【OS镜像版本】

    0518-server

    2.问题现象描述

    服务器通过vncserver@:1.service服务启动的vnc服务后,普通用户用vnc连接时,锁屏后,然后输入登陆密码会报密码错误,无法登陆进去。在使用loginctl unlock-session id 测试、点击开始菜单锁屏或者命令ukui-screensaver-dialog --lock锁屏后,输密码登陆都会报错。如图1

    图 1

    服务器版本如图2

    图 2

    3.问题分析

    在锁屏前,我们查看ukui-screensaver进程如图3

    图 3

    锁屏后,发现多出来两个ukui-screensaver-dialog --lock的进程。后续可以考虑针对这两个多出来的进程做排查。如图4

    图 4

    输入正确密码后,我们查看 /var/log/secure日志,发现报错:pam_faillock(ukui-screensaver-qt:auth): Configuration file missing or broken,可知,锁屏登录验证的时候,锁屏程序在调用faillock模块时候出现了问题,提示的是文件丢失或者损坏。如图5

    图 5

    rpm -Va查看文件修改记录,可以看到/etc/pam.d/下面的文件被修改过,如图6

    图 6

    将正常机器的/etc/pam.d/下面的文件全部拷贝过来覆盖有问题机器上的文件,问题依然存在,如图7

    图 7

    比较faillock相关的文件md5值,未见异常。如图8

    图 8

    添加audit规则,监控在vnc登录的时候,有哪些进程用到了pam_faillock模块。如图9

    图 9

    然后我们执行登录操作后,在audit日志中可以看到使用pam_faillock模块的进程号,正好是只有/usr/bin/ukui-screensaver-dialog --lock,如图10、图11

    图 10

    图 11

    我们在一边执行登录操作的时候,一边用strace跟踪/usr/bin/ukui-screensaver-dialog --lock的系统调用,发现有/etc/security/faillock.conf的权限不够的报错。如图12

    图 12

    查看/etc/security/下面文件的权限,全部被改成了700,如图13

    图 13

    将文件权限恢复,如图14

    图 14

    发现问题依然存在,于是继续使用strace跟踪,发现还是提示的权限不够,查看 /etc/security目录权限发现也被改成了700,如图15、图16

    图 15

    图 16

    最后,将/etc/security目录权限恢复正常后,可以正常登录进去系统。

    4.问题分析结果

    该问题出现的根本原因为/etc/security目录以及该目录下面的文件权限全被被改成了700,导致其他非root用户对该目录以及目录下的文件没有读的权限,从而登录失败。

    5.解决方案

    将 /etc/security目录以及该目录下面的文件权限恢复正常即可。

    6.后续计划与建议

    部署第三方应用的时候,注意主要系统配置文件权限不能被修改。

  • 相关阅读:
    我用规则引擎实现了消除if语句
    面试官:你说说一条查询 SQL 的执行过程
    聊聊大数据框架的数据更新解决方案: COW, MOR, MOW
    ubantu(linux)下安装qt6遇到的问题
    F5 iRule示例综合展示
    【Linux】常用工具(上)
    Kotlin 开发Android app(十二):Android布局FrameLayout和ViewPager2控件实现滚动广告栏
    Android-短信验证码
    【嵌入式Linux应用开发】温湿度监控系统——多线程与温湿度的获取显示
    分布式事务(五)———可靠消息队列解决方案
  • 原文地址:https://blog.csdn.net/2301_77223451/article/details/137915669