linux - Unix: 'su user' 不工作并且在 SSH 中保持 root 如果条件
问题描述
我一直在研究 bash 脚本并且遇到了奇怪的问题。基本上,我从本地服务器以 root 身份通过 SSH 连接到远程服务器并尝试运行一些命令。其中一个命令是将用户从 root 更改为服务帐户。为此,我使用命令“su”并将其更改为服务帐户。但奇怪的是,当我在“if condition”中运行相同的命令时,它只保留为 root 帐户。这是代码片段:
echo "Enter host name you want to start: "
read remote
echo "Enter password for $customDNS : "
read -s remote_pass
sshpass -p$remote_pass ssh -T -o StrictHostKeyChecking=no $remote <<EOF
ps -ef | grep -i tomcat | grep -i bootstrap | awk '{print \$2}'
su serviceAccount --------------------> This command works fine
if [ -z "\$(ps -ef | grep -i tomcat | awk '{print \$2}')" ]
then
echo "$remote: Need to start server"
su serviceAccount -----------> This doesn't work
startup.sh
else
echo "$remote: Already up and running"
fi
echo "#######################################################"
echo
EOF
请帮忙!
谢谢, 席德
解决方案
推荐阅读
- variables - 减少 VScode 片段中的重复(保存复杂的转换以供以后使用)
- go - 仅在填充 Go 结构字段时验证它
- python - AWS CDK - 在 Aspect 中获取用户数据命令
- react-bootstrap - React-Bootstrap 导航栏
- c++ - std::enable_if 选择一个类专业化
- python - Pywin32 代码在保存打开、未保存的 Excel 工作表时突然开始抛出属性错误
- r - 连接来自两个数据帧的多个列,每个数据帧具有不同的列名
- lua - 我如何将“\”放在字符串中而不取消前面的撇号?
- python - 具有更多随机化的python排列
- r - R 中的元分析:我如何总结研究中的(独立和相关的)子组?