私はUNIXシステムのユーザーのホームディレクトリを取得したいと思います。なぜ、次の仕事はありません:それは動作しない理由をbashプログラミングSTDINリダイレクト
# sudo su $offender -c "bash -s < <(echo echo \$HOME)"
sh: Syntax error: redirection unexpected
私はUNIXシステムのユーザーのホームディレクトリを取得したいと思います。なぜ、次の仕事はありません:それは動作しない理由をbashプログラミングSTDINリダイレクト
# sudo su $offender -c "bash -s < <(echo echo \$HOME)"
sh: Syntax error: redirection unexpected
またそうのようなあなたの/ etc/passwdファイルからそれをえぐることができます:
grep "^$offender" /etc/passwd | cut -d':' -f6
ときどき明らかに私を逃れる。 : - / –
は本当に分からないのですが、ここでそのユーザとしてシェルを産卵関与していないホームディレクトリを取得する方法です:
それは、UbuntuとFedoraはsudo su $offender -c "echo \$HOME"
を使用して私の作品
getent passwd "${offender:?No Offending Account Given}" | awk -F':' 'NR==1{print $6}'
'sudo su $ {offender} -c 'bash - あなたが情報を取得したいユーザとしてプロセスを実行することを主張するならば、 "echo $ HOME" ''、' sudo su $ {offender} -c "bash -s <<<' echo¥$ HOME ' 。 – Ariel
これも動作します、ありがとう! –
直接の問題は、がbash
へのリンクであっても、プロセス置換(<(echo $HOME)
)表記法を認識しないということです。
情報を取得するのはむしろ強硬な方法のようです。しない:
eval echo ~$offender
あなたのために働く?
なぜ 'sudo su $ offender -c 'echo $ HOME'があなたのために機能しないのですか? – cHao
"リダイレクトの予期しない"エラーが発生する –
完全に予想されます。 '<<'はあまり意味がありません。私は何を求めているのです、なぜすべてのシェルの体操ですか?それはあなたがすべてのリダイレクトとエコーコマンドなどを必要としないようだね... – cHao