我想在shell脚本中检测到我要通过sudo运行的命令实际上是否可以通过sudo运行。在较新版本的sudo上,我可以执行sudo -l“command”,这样就可以得到我想要的结果。
但是,某些系统有旧版本的sudo,其中-l“Command”不可用。我想做的另一种方法是尝试运行命令然后查看sudo是否提示输入密码。但是,我没有看到一个简单的方法,因为sudo将密码提示写入TTY而不是通过stdout。
有没有其他人知道这样做的直接方式?
我还应该提到“expect”似乎在具有旧版sudo修订版的系统上不可用。
仅供参考,“难度”版本的sudo似乎是版本1.6.8
答案 0 :(得分:0)
在Linux上,(至少)在类似Debian的系统上,您可以查看/etc/sudoers
(以及可选的/etc/sudoers.d/*
文件(如果已创建),并包含在主/etc/sudoers
中})给(等)
这是sudoers man page以获取更多信息。
答案 1 :(得分:0)
如果您只想检查运行命令是否需要密码,那么您应该能够运行:
$ sudo -n <command>
E.g。
$ sudo -n echo
sudo: sorry, a password is required to run sudo