【发布时间】:2014-07-25 05:37:04
【问题描述】:
哪种模式更可取:
#!/bin/bash
echo Installing blah
apt-get install -y blah
...如果在没有 root 权限的情况下运行会失败,或者:
#!/bin/bash
echo Installing blah
sudo apt-get install -y blah
...只要用户具有 sudo 访问权限,就会成功。
我倾向于使用第二种模式,但似乎很少见,所以我想问一下它的缺点是什么。我看到的好处是:
- 很清楚哪些命令实际上需要超级用户权限才能运行(如果读者想将脚本分开,这很有用)
- 为用户节省了几次击键次数。
我想缺点包括使用 root 权限可能会令人惊讶(“我没有输入 sudo,所以我没想到会运行 apt-get 之类的东西......”)。还有什么?
【问题讨论】:
-
如果用稍微复杂一点的方法呢?首先,您可以检查用户的
id。或者您可以运行apt-get install -y blah,如果失败,请询问用户是否以 sudo 身份运行? -
遗憾的是,大多数 shell 脚本问题的正确方法很少见。
-
有很多支持使用
sudo的论据。但是,AFAIK,sudo不是基本系统的一部分。在您的脚本中使用它需要用户安装(并可能配置)该可选软件。
标签: linux bash permissions sudo