gpt4 book ai didi

linux - cd 到目录和 su 到脚本中远程服务器上的特定用户

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:05:09 31 4
gpt4 key购买 nike

我每 2 周在我们办公室的远程 Ubuntu CLI 服务器上执行一些任务。我通常一个一个地输入命令,但我正在尝试寻找一种方法(也许写一个脚本?)来减少我花在重复这些第一步上的时间。

这是我的做法:

ssh my_username@my_local_server
# asks for my_username password
cd /path/to/particular/folder
su particular_user_on_local_server
# asks for particular_user_on_local_server password

然后我可以执行我的任务(在 Rails 应用程序上运行一些 Ruby 脚本、复制/删除文件、重启服务等)

我正在尝试找到一种在单步脚本/命令中执行此操作的方法:

"ssh connect then cd to directory then su to this user"

我尝试使用以下内容:

ssh username@server 'cd /some/path/to/folder ; su other_user'
# => does not keep my connection open to the server, just execute my `cd`
# and then tells me `su: must be run from terminal`
ssh username@server 'cd /some/path/to/folder ; bash ; su other_user'
# => keeps my connection open to the server but doesn't switch to user
# and I don't see the usual `username:~/current/folder` prefix in the CLI

有没有办法通过 ssh 在远程服务器上打开终端(保持连接)并自动更改目录 + 切换到特定目录? (为了让事情变得更难,我正在使用 Yakuake)

最佳答案

您可以使用 -t 强制分配一个伪终端,切换到所需的目录,然后将 shell 替换为您是所需用户的 shell:

ssh -t username@server 'cd /some/path/to/folder && exec bash -c "su other_user"'

关于linux - cd 到目录和 su 到脚本中远程服务器上的特定用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592292/

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