我是linux世界的新手。所以请原谅任何愚蠢的问题。
我有一台linux机器,我没有root访问权限。我有服务帐户,可以完全访问app文件夹。我的登录(ssh)凭据无权访问该app文件夹。
所以我将遵循以下流程。
1)使用winscp将windows机器中的app文件夹复制到linux中的/ tmp /。
2)使用putty登录机器。
3)使用以下命令将用户更改为服务帐户。
sudo su – “service account”
4)然后我将app文件从/ tmp /文件夹复制到/ app /文件夹并启动其他配置。
我想自动执行上述过程。所以我在下面做了。
#Copy files to tmp folder
winscp.com -hostkey=* user:"password"@host /command "put D:/app_folder/ /tmp/ app_folder"
#Execute the script remotely
plink user:@host -m D:\Install_app.sh
上面的脚本运行正常,直到我运行test echo命令。由于用户无法访问app文件夹,因此在运行配置命令时会引发错误。只有服务帐户才能访问。但服务帐户没有远程登录访问权限。所以我不能用服务帐户运行脚本。
所以我尝试使用服务帐户在脚本中运行命令。我试过下面的
Echo “password” | sudo –S su - “service account” “commands”
它不起作用。能告诉我有没有其他方法可以达到这个目的。一旦脚本开始执行,我想在脚本内部更改用户。
注意:由于安全原因,linux管理团队正在遵循此流程。所以我无法改变这个过程:(。