我想使用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然后使用其他(很好)答案中给出的解决方案... –