(最初发布在 Stack Overflow 上。他们建议我改为在这里尝试。这是原始帖子:https : //stackoverflow.com/questions/3858208/sudo-is-there-a-command-to-check-if-i-have -sudo-and-or-how- much-time-is-left )
见标题。我想要一个让我查询 sudo 的命令。理想情况下,如果我仍然有 sudo 和 false 如果 sudo 已过期,它将返回成功。获得剩余时间也可能有用(尽管如果我担心我可以执行 sudo -v 重新验证。)哦,它不应该要求输入密码。
我发现的最接近的东西是“sudo -n true”,但 -n 选项仅存在于我的 Centos 5 机器上。-n 如果必须要求输入密码,则失败。有没有其他方法可以获得这个功能?假设我实际上在我使用的所有机器上都没有 root,所以我无法根据自己的喜好安装新版本的 sudo。
我这样做是值得的,这样我就可以得到指示 sudo 状态的提示。我喜欢知道哪些终端可以主动使用 sudo。我也有一个提示,当我是 root 时会改变颜色,但我不经常使用 root,所以使用有限。
小智 30
我知道这是一个非常古老的问题,但这是我今天在脚本中所做的。假设成为 sudo 意味着能够以 sudo 的身份运行任何命令(或者至少是正常运行时间)
CAN_I_RUN_SUDO=$(sudo -n uptime 2>&1|grep "load"|wc -l) 如果 [ ${CAN_I_RUN_SUDO} -gt 0 ] 然后 echo "我可以运行 sudo 命令" 别的 echo "我无法运行 Sudo 命令" 菲
但是,如果您的用户在 visudo 中有限制,则此检查是不够的,例如,如果您的用户只能使用 make 命令。尝试运行一些您知道会起作用的命令。您可以添加过滤器 grep -v 抱歉,例如:$(sudo -n uptime 2>&1|grep "load" | grep -v 抱歉|wc -l) 以避免这些误报。
小智 11
该-n
选项在较新版本的 sudo 中可用,但正如您所说,这不是一个选项。除了尝试 sudo 并查看它是否会提示输入密码之外,没有真正的方法可以执行您正在寻找的操作。如果您担心需要视觉指示,为什么不开始执行 sudo /bin/bash 来启动 root bash 会话?请注意,这是不安全的,但如果有人意识到您对 sudo 的提示更改,这也有点不安全。
归档时间: |
|
查看次数: |
49110 次 |
最近记录: |