我想使用 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 命令工作。
什么是适当的技术来实现我在这里尝试做的事情?评估,引用,sudo 标志,sudoers 文件 mod,其他?