如何以不同用户身份通过​​管道连接到 bash

如何以不同用户身份通过​​管道连接到 bash

我正在进行一项实验,作为解决更大问题的方法。为了进行实验,我需要rvm以没有 shell 的用户身份进行安装。

要安装rvm,请使用以下命令

\curl -L https://get.rvm.io | bash

我如何以不同的用户身份运行以下命令?

这就是我正在尝试做的事情,但它不起作用。

sudo -u foo -H \curl -L https://get.rvm.io | bash 
sudo -u foo -H which rvm  
sudo: rvm: command not found

答案1

您需要以用户身份运行 shell,而不是curlwhich命令。

有多种方法可以做到这一点,包括:

sudo -u user bash -c 'curl -L https://get.rvm.io | bash'

curl -L https://get.rvm.io | sudo -u user bash

如果您想以交互方式执行此操作,您可以使用sudo-s选项来覆盖它们没有有效 shell 的事实。例如:

# sudo -u user -s /bin/bash
$ whoami
user
$ exit

相关内容