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
您需要以使用者身份執行 shell,而不是命令
curl
或which
命令。有幾種方法可以做到這一點,包括:
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