V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wniming
V2EX  ›  Linux

fedora 37 用 root 用户登录 ssh 会导致系统重启,各位有遇到过吗?

  •  
  •   wniming · 2023-03-20 14:05:42 +08:00 · 1731 次点击
    这是一个创建于 374 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用普通用户 ssh 登录没问题,所以我都是先用普通用户登录然后再切换到 root 用户使用,但是有的时候通过 dnf 安装软件包的过程中也会重启。

    这个问题在我的树莓派上可以百分之百复现,在 amd 平台上通过 qemu 运行的虚拟机也可以百分之百复现。

    16 条回复    2023-03-20 19:14:45 +08:00
    wniming
        1
    wniming  
    OP
       2023-03-20 14:07:23 +08:00
    楼主从 fedora 28 用到现在,从来没遇到过这么奇怪的问题。
    barathrum
        2
    barathrum  
       2023-03-20 14:15:31 +08:00
    我有一个 f36 和两个 f37 ,都是 amd64 的,一个 f37 是三月初装的还没更新,一个是上周五装的,目前还没遇到过你说的这种问题。

    不知道有没有安装步骤我用 qemu 尝试复现一下。
    yanzhiling2001
        3
    yanzhiling2001  
       2023-03-20 14:24:08 +08:00
    楼主用的哪个镜像,发一下我们复现试试
    ETiV
        4
    ETiV  
       2023-03-20 14:26:27 +08:00 via iPhone
    是不是授信公钥里埋了个 reboot 命令😂
    wniming
        5
    wniming  
    OP
       2023-03-20 14:43:39 +08:00
    刚刚在 intel 平台下测试了一下,有同样的问题,而且也不仅限于 ssh ,qemu 的串口 root 登录也是会重启。
    wniming
        6
    wniming  
    OP
       2023-03-20 15:46:02 +08:00
    @barathrum @yanzhiling2001

    我把镜像上传到 google driver 了,2 位可以下载下来试一下:
    https://drive.google.com/file/d/1xTmHuTG9hBGppaf7PqLB-u61cwKFapoO/view?usp=sharing

    还有 initramfs:
    https://drive.google.com/file/d/12c3m1l8b-UE6tpwvgjH6_JMkd1VvODN6/view?usp=sharing

    /usr/bin/qemu-system-x86_64 -enable-kvm -name fedora -smp 2 -m 2G -drive file=/a/disk/fedora-server.raw,if=virtio,format=raw -nic none -kernel /boot/vmlinuz-6.0.7-301.fc37.x86_64 -initrd ~/initramfs-6.0.7-301.fc37.x86_64.img -append "root=/dev/vda2 rw console=ttyS0" -nographic
    yanqiyu
        7
    yanqiyu  
       2023-03-20 16:44:36 +08:00   ❤️ 2
    大致检查了下,登陆的时候会主动关机( S5 )
    目前怀疑是修改的 /usr/bin/systemctl 干的?
    但是没做 strace (因为没装&懒得装)没能实锤,但是我怀疑是这个主动 call 了关机
    问一下你对 systemctl 这个文件做了什么修改?(我看到大小比我机器上的 fedora 安装笑了很多)
    wniming
        8
    wniming  
    OP
       2023-03-20 17:07:09 +08:00   ❤️ 1
    @yanqiyu 感谢回复,我通过 rpm -V systemd 检查了一下,/usr/bin/systemctl 确实是被修改了,是我不小心修改的。

    我之前写了一个 reboot 命令替换了 /sbin/reboot ,我当时是直接 cp reboot /sbin/reboot 这么操作的,因为 /sbin/reboot 是 /usr/bin/systemctl 的软连接,这才导致 /usr/bin/systemctl 被替换了,真是不好意思,自己坑了自己又浪费了 V 友们的时间。。
    wniming
        9
    wniming  
    OP
       2023-03-20 17:14:27 +08:00
    @yanqiyu 大佬你是怎么这么快就定位问题的?我之前只知道把 /sbin/reboot 重命名以防止被使用,怎么都没想到 /usr/bin/systemctl 早就被修改了
    wniming
        10
    wniming  
    OP
       2023-03-20 17:25:32 +08:00
    @yanqiyu 我感觉 cp 这个命令直接去写软链接链接的那个文件根本就不合理,rsync 和 mv 就是只修改软链接本身。
    yanqiyu
        11
    yanqiyu  
       2023-03-20 17:46:02 +08:00   ❤️ 2
    @wniming 这个链接老坑新手设计了...
    确认问题之后大概看了下情况判断是某个程序主动关机而不是出错关机
    然后检查了下 root 的登陆脚本是不是干了坏事,发现不是,然后就是凭直觉去找登陆过程中涉及的程序,逐个手动调用发现运行 systemctl 直接就关机了
    yanzhiling2001
        12
    yanzhiling2001  
       2023-03-20 17:49:00 +08:00
    刚看到就有人给解决问题了
    wniming
        13
    wniming  
    OP
       2023-03-20 17:52:23 +08:00
    @yanqiyu systemctl 怎么会在登录过程中被调用呢?是谁调用了这个程序?为什么普通用户登录就不会调用这个?
    yanqiyu
        14
    yanqiyu  
       2023-03-20 17:57:46 +08:00   ❤️ 2
    @wniming 普通用户就算调用了也没权限关机 /重启,结果是没效果

    登录的环境准备基本就是 systemd 的一堆操作(包括 session bus 之类的)和各类脚本,既然在非 systemd 环境下尝试了 bash --login 排除了登陆脚本就只有顺着 systemd 的相关文件(没有特定逻辑,就猜)检查了
    wniming
        15
    wniming  
    OP
       2023-03-20 18:06:14 +08:00
    @yanqiyu 刚才试了把 /usr/bin/systemctl 重命名,没有这个完全不影响登录的,真是搞不明白 systemd 这一套的设计。
    MoeMoesakura
        16
    MoeMoesakura  
       2023-03-20 19:14:45 +08:00
    @wniming systemctl 是控制服务的状态的,就跟你 windows 下面缺个 services.msc 也不影响开机一样吧(不过这启动的时候拉一个 systemctl 确实比较迷,大概是开机有服务连带启动
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1040 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:23 · PVG 06:23 · LAX 15:23 · JFK 18:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.