我想獲取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
它爲我在Ubuntu和Fedora使用sudo su $offender -c "echo \$HOME"
你也可以從你的/ etc/passwd文件剜像這樣:
grep "^$offender" /etc/passwd | cut -d':' -f6
有時候明顯的逃脫我。 : - / – 2012-04-07 03:13:40
真的不知道爲什麼它不工作,但這裏有一種方式來獲得的主目錄,不涉及產卵殼是該用戶:
getent passwd "${offender:?No Offending Account Given}" | awk -F':' 'NR==1{print $6}'
或者'sudo su $ {offender} -c'bash - c「echo $ HOME」'''或'sudo su $ {offender} -c「bash -s <<<'echo \ $ HOME'」'如果你堅持以你想獲取信息的用戶身份運行一個進程。 – Ariel 2012-04-07 02:56:22
這也適用,謝謝! – 2012-04-07 03:19:33
直接的問題是sh
不能識別進程替換(<(echo $HOME)
)表示法,即使它是鏈接到bash
。
這似乎是一個相當強大的方式來獲取信息。沒有:
eval echo ~$offender
爲你工作?
爲什麼'sudo su $ offender -c'echo $ HOME''爲你工作? – cHao 2012-04-07 02:52:10
我收到「意外重定向」錯誤 – 2012-04-07 02:54:58
完全預期。 '<<'沒有多大意義。我問的是,爲什麼所有的貝殼體操?它似乎你不需要所有的重定向和回顯命令等... – cHao 2012-04-07 02:56:36