与su相反:运行没有root权限的命令

Modified on: Mon, 16 Sep 2019 13:40:02 +0800

我正在编写一个shell脚本,其中大多数命令不需要root权限。
该脚本应由管理员运行。但我希望能够“su”到普通用户帐户,以获取不需要root权限的脚本部分。
这将最大限度地减少使用root权限执行的操作数量,并提高安全性。

是否有linux命令可以做到这一点?

我知道可以su到任何用户帐户,但我不想依赖于机器上存在特定用户名的假设。

我想过为脚本创建一个临时帐户,并在脚本末尾删除它。但是,如果我没有在此帐户上设置密码,攻击者是否可以在帐户的短暂生命周期内使用它?我无法将用户shell设置为/ sbin / nologin,因为这显然会阻止在shell脚本中执行命令“起诉”该帐户。

感谢您的帮助。

最佳答案

我个人会反转您的策略并以非特权用户身份运行脚本,sudo用于运行需要root权限的命令。您是否需要以root身份运行脚本?

要回答您的问题,您可以使用-c标志以用户身份运行特定命令:

su someuser -c "touch /tmp/file"

参考:http://linux.die.net/man/1/su


相关问答

添加新评论