以更高权限的用户身份运行脚本?

以更高权限的用户身份运行脚本?

我正在使用 Ubuntu Desktop 16.04,我想知道是否可以让用户运行具有(需要)比用户更高权限级别的脚本,如果可以,如何操作。

一般来说,我希望有一个用户只能启动特定的脚本(需要管理员权限才能运行)并将 PC 置于睡眠模式(pm-sleep-hybrid)。

有没有办法实现第一个目标,甚至后者?

答案1

你是指这样的事情吗?

sudo pm-sleep-hybrid

然后您只需要先将该用户添加到 sudoers 组。

例如

sudo vi /etc/group

然后在提到用户 sudo 的行末尾附加用户 ID:

sudo:x:27:my_special_user

但是该用户在调用脚本时必须输入密码......

答案2

注意:以下答案引用的工具可能会损害您的系统。

“/etc/sudoers 文件控制谁可以在哪些机器上以哪些用户身份运行哪些命令,还可以控制特殊事项,例如是否需要密码才能执行特定命令。该文件由别名(基本上是变量)和用户规范(控制谁可以运行什么)组成。” Sudoers - 社区帮助 wiki

您可以修改此文件以允许用户或组以其他用户身份运行命令。此文件中的错误可能会对系统造成很大损害。

如果脚本被授权由 sudoers 文件运行,然后由非特权用户编辑。新脚本可以有效运行任何特权命令。因此,最好只允许将精确的命令添加到 sudoers 文件中。

首先通过运行安全地编辑文件sudo visudo

如果你想允许 bob(一个没有特权的用户)从控制台关闭系统而无需密码。

为此,您需要添加一些 cmnd 别名,如下所示:

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot

您还需要添加用户规范(在文件末尾的“%admin ALL = (ALL) ALL”行之后使其生效 - 详情见上文):

bob ALL=(ALL) NOPASSWD: SHUTDOWN_CMDS

相关内容