You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Solar Putty中执行含sudo及后续服务器脚本的认证后脚本?

需求可行,调整脚本逻辑即可解决问题

你的需求完全可以实现,当前无响应的核心原因是:sudo -iu flanger会启动一个新的交互式登录shell,原脚本里后续的命令不会自动进入这个新shell的执行上下文——原脚本在启动新shell后就结束了,新shell只是停在交互式状态,没收到要执行的脚本指令。

解决方法

方法1:用Here-Doc传递后续命令

把要执行的服务器脚本写在EOF标记之间,让sudo -iu flanger启动的新shell直接读取并执行这些命令:

sudo -iu flanger << EOF
# 替换成你的服务器脚本实际路径
/home/flanger/scripts/your-target-script.sh
EOF

这种方式会完整加载flanger用户的登录环境(比如.bashrc/.profile里的配置),和手动切换用户后执行脚本的效果完全一致。

方法2:通过管道传递单条命令

如果仅需执行单条脚本命令,也可以用管道直接把指令传给新shell:

echo "/home/flanger/scripts/your-target-script.sh" | sudo -iu flanger

方法3:直接指定用户执行脚本(无需登录环境时用)

如果你的目标脚本不依赖flanger用户的登录环境变量,还可以简化成:

sudo -u flanger /home/flanger/scripts/your-target-script.sh

这种方式不会启动交互式shell,直接以flanger用户身份执行脚本,执行效率更高。

补充说明

之前你需要在sudo -iu flanger前加换行才能运行,是因为Solar Putty的脚本执行逻辑在模拟交互式输入,换行相当于触发命令执行;但后续命令必须嵌套到新shell的执行流程里,才能被正确识别并运行。

内容的提问来源于stack exchange,提问作者Michael Rodgers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:14:54