web-dev-qa-db-ja.com

別のユーザーとしてbashにパイプする方法

私はより大きな問題を解決する方法として実験を行っています。実験のために、シェルを持っていないユーザーとしてrvmをインストールする必要があります。

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
2
spuder

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オプションを使用して、有効なシェルがないという事実を上書きできます。例えば:

# Sudo -u user -s /bin/bash
$ whoami
user
$ exit
8
cas