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

真的不知道为什么它不起作用,但这是一种获取主目录的方法,它不涉及以该用户身份生成 shell:

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

直接的问题是sh它无法识别进程替换(<(echo $HOME))符号,即使它是指向bash.

这似乎是一种获取信息的蛮力方式。不:

eval echo ~$offender

为你工作?

于 2012-04-07T03:11:13.740 回答