我想获取 unix 系统用户的主目录。为什么以下不起作用:
# sudo su $offender -c "bash -s < <(echo echo \$HOME)"
sh: Syntax error: redirection unexpected
我想获取 unix 系统用户的主目录。为什么以下不起作用:
# sudo su $offender -c "bash -s < <(echo echo \$HOME)"
sh: Syntax error: redirection unexpected
它适用于我在 Ubuntu 和 Fedora 中使用sudo su $offender -c "echo \$HOME"
您也可以像这样从 /etc/passwd 文件中挖出它:
grep "^$offender" /etc/passwd | cut -d':' -f6
真的不知道为什么它不起作用,但这是一种获取主目录的方法,它不涉及以该用户身份生成 shell:
getent passwd "${offender:?No Offending Account Given}" | awk -F':' 'NR==1{print $6}'
直接的问题是sh
它无法识别进程替换(<(echo $HOME)
)符号,即使它是指向bash
.
这似乎是一种获取信息的蛮力方式。不:
eval echo ~$offender
为你工作?