【发布时间】:2011-04-20 20:45:23
【问题描述】:
有一个需要root权限才能执行的shell脚本(/bin/sh,不是bash)。
如果它由普通用户运行,它应该要求用户输入密码以获取 root 访问权限并重新运行。
现在它使用以下代码:
if [ $(id -u) -ne 0 ]; then su root -- $0 $@ ; ... fi
这很好用,但是有些操作系统(例如 Ubuntu)根本没有 root 密码。另一方面,很多系统使用 sudo 来获得 root 权限。
问题是:脚本如何检测是使用su还是sudo而不要求用户输入太多密码(例如输入sudo密码,如果失败-运行su)。
【问题讨论】: