0

UNIX システムのユーザーのホーム ディレクトリを取得したいと考えています。以下が機能しないのはなぜですか:

# sudo su $offender -c "bash -s < <(echo echo \$HOME)"
sh: Syntax error: redirection unexpected
4

3 に答える 3

1

UbuntuとFedoraで私のために動作しますsudo su $offender -c "echo \$HOME"

次のように /etc/passwd ファイルから掘り下げることもできます。

grep "^$offender" /etc/passwd | cut -d':' -f6
于 2012-04-07T02:54:01.767 に答える
0

直接的な問題は、それがへのリンクであっても、shプロセス置換()表記を認識しないことです。<(echo $HOME)bash

情報を取得するためのかなり野蛮な方法のようです。しません:

eval echo ~$offender

あなたのために働きますか?

于 2012-04-07T03:11:13.740 に答える
0

うまくいかない理由はよくわかりませんが、そのユーザーとしてシェルを生成する必要のないホーム ディレクトリを取得する方法を次に示します。

getent passwd "${offender:?No Offending Account Given}" | awk -F':' 'NR==1{print $6}'
于 2012-04-07T02:52:32.063 に答える