ssh 登录后如何运行 sudo -s

sat*_*els 2 sudo bash shell sh

我的步骤:

  1. 在 myserver.com 上,我将“sudo -s”行粘贴到“mylogin”的主目录中的“~/.bashrc”文件中
  2. SSH 登录到 mylogin@myserver.com
  3. 登录后:

    root@myserver.com:~$

  4. 但是,按 cntrl+D 退出

    root@myserver.com:~$ exit

    root@myserver.com:~$ exit

    ...

    root@myserver.com:~$

    5、不要放弃。

为什么?

请告诉我正确的方法。

小智 5

您可以将标志存储在环境变量中:

if [ -z $INITIAL_SUDO ]; then
    exec sudo -s INITIAL_SUDO=1
fi
Run Code Online (Sandbox Code Playgroud)

在这种情况下,ssh 调用的初始 shell 不会打开该INITIAL_SUDO标志,它将产生 sudo 进程。另一方面,由 sudo 调用的 Shell 将INITIAL_SUDO设置变量并且不会再次尝试调用 sudo。

请注意,我调用exec sudo -s而不是sudo -s. 否则,您必须按 ctrl+D 两次:第一次是针对根 shell,第二次是针对首先调用 sudo 的初始 shell。