远程执行 Magic Sys Rq

c0r*_*0rp 7 linux ssh magic-sysrq reboot

是否可以使用 SSH 在远程机器上执行 Magic SysRq 密钥?例如,我试图像这样运行:

xdotool key Alt+Sys_Req+H
Run Code Online (Sandbox Code Playgroud)

但是我在控制台中看不到任何帮助,在/var/log/syslog.

请假设我没有 root 访问权限,并且无法写入/proc/sysrq-trigger.

小智 11

如果在内核中启用了 sysrq,这应该可以工作(在我的机器上进行了现场测试):

# echo "h" > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)

需要root权限。

SysRq 键不是 X 处理的常规键,因此 xdotool 无法触发魔法键,因为它与 Xorg 本身交互,而不是内核。幸运的是,内核提供了一个特殊文件来从脚本和远程 shell 触发它们。

使用紧急同步命令 (S) 在我的设备上进行了测试:

# echo "s" > /proc/sysrq-trigger
# dmesg | tail -n 2
[263565.001982] SysRq : Emergency Sync
[263565.115168] Emergency Sync complete
Run Code Online (Sandbox Code Playgroud)


brm*_*brm 5

我很好奇是否可以SysRq使用 Linux 设备注入按键,因此我在另一个小项目uinput中添加了一些代码,这似乎是可能的。但正如已经指出的,当然您也需要拥有 root 访问权限。

对于这个特定的组合键,我必须执行:

./sendevtkeys /dev/uinput 56 99 35
Run Code Online (Sandbox Code Playgroud)

其中 56 对应于Alt,99 对应于SysRq,35 对应于h