gpt4 book ai didi

linux - shell脚本中的su命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:14 25 4
gpt4 key购买 nike

我有一个脚本可以复制一个文件,然后解压并在多个系统上安装(代理服务)(从 systems.txt 文件读取 IP)。在脚本中,我想以用户“test”的身份启动代理服务。然而,在脚本执行后,当我检查目标系统时,代理服务显示为以“root”用户身份运行。这里有什么问题?我在脚本中没有正确使用 su 命令吗?

~]# ps -ef | grep agent-service

root 23511 15196 0 02:12 pts/3 00:00:00 agent-service

脚本>

#!/bin/bash
export AGENT=linux-5.8.1.tar.gz

while read host; do

scp $AGENT root@$host:/opt


ssh -n root@$host 'cd /opt/linux;
tar zxvf linux-5.8.1.tar.gz;
mkdir /opt/hyperic;
useradd -m test;
chown -R test:test /opt/linux;
su - test;
/opt/linux/agent-service start'

done < systems.txt

最佳答案

像这里一样使用 su 会生成一个新的 shell,该 shell 无事可做,因此会立即退出。

要么将命令传递给 su:

su - test -c /opt/linux/agent-service start

或者以类似的方式使用sudo:

sudo -u test /opt/linux/agent-service start

关于linux - shell脚本中的su命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25619734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com