Bash

如何以不同的使用者身份通過管道傳輸到 bash

  • September 20, 2013

我正在做一個實驗來解決更大的問題。對於實驗,我需要以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

您需要以使用者身份執行 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

引用自:https://unix.stackexchange.com/questions/91534