我想获取unix系统用户的主目录。为什么没有以下工作:
# sudo su $offender -c "bash -s < <(echo echo \$HOME)"
sh: Syntax error: redirection unexpected
答案 0 :(得分:1)
使用sudo su $offender -c "echo \$HOME"
您也可以从/ etc / passwd文件中凿出它,如下所示:
grep "^$offender" /etc/passwd | cut -d':' -f6
答案 1 :(得分:0)
不知道为什么它不起作用,但是这里有一种方法可以获得不涉及以该用户形式生成shell的主目录:
getent passwd "${offender:?No Offending Account Given}" | awk -F':' 'NR==1{print $6}'
答案 2 :(得分:0)
直接问题是sh
无法识别流程替换(<(echo $HOME)
)表示法,即使它是指向bash
的链接。
这似乎是获取信息的一种相当蛮力的方式。不:
eval echo ~$offender
为你工作?