我想使用bash進程替換sudo命令。使用bash進程替換sudo命令
例如,這裏有一個非sudo命令爲我的作品:
$ cat <(echo "installed.txt")
installed.txt
而這裏的命令的sudo的版本不工作:
$ sudo cat <(echo "installed.txt")
cat: /dev/fd/63: Bad file descriptor
讀sudo的手冊頁,似乎sudo在作爲root運行命令之前關閉除stdin/stdout/stderr文件描述符以外的所有文件描述符。這導致我認爲bash在運行sudo命令之前創建描述符(並執行進程替換)。
我將root的shell改爲bash(而不是sh默認)。我已經測試過,以root用戶身份登錄時,該命令正常工作。它只能通過sudo命令無效。
什麼是合適的技術來實現我在這裏要做的事情? Eval,引用,sudo標誌,sudoers文件mod,其他?
一切都是單線的;我想避免需要這樣做。 –
@ClaytonStanley然後使用其他(很好)答案中給出的解決方案... –