Ste*_*ett 5 linux permissions bash sudo
哪种模式更可取:
#!/bin/bash
echo Installing blah
apt-get install -y blah
Run Code Online (Sandbox Code Playgroud)
...如果没有root权限运行会失败,或者:
#!/bin/bash
echo Installing blah
sudo apt-get install -y blah
Run Code Online (Sandbox Code Playgroud)
...只要用户具有sudo访问权限,它就会成功.
我倾向于使用第二种模式,但它似乎很少见,所以我问它的缺点是什么.我看到的好处是:
我认为缺点包括使用root权限可能会令人惊讶("我没有输入sudo,所以我没想到像apt-get一样运行......").还有什么?
第二个选项是正确的选项。不需要 root 访问权限的命令不应仅仅为了简化脚本而以 root 身份运行。确实需要 root 访问权限(或任何特定用户的访问权限)的命令应由 sudo 运行。为了清楚起见,您可以使用该-p选项来sudo显示自定义提示,该提示可以准确解释为什么要求用户输入密码。
选项二也是更可取的,因为sudo它具有高度可配置性,并且用户可能已经有权在sudo 没有密码的情况下运行特定命令,因此用户可能不会因密码提示而感到不便。用户不太可能在没有密码的情况下执行sudo任意命令(例如您的脚本)。