允许特定组的用户无需 sudo 即可运行命令

允许特定组的用户无需 sudo 即可运行命令

我知道如何编辑 /etc/sudoers,以便我可以以 sudo 身份运行命令而无需输入密码,但是有没有办法让组内的所有用户完全不使用 sudo 来运行程序。(我想要运行的程序是“mount”和“umount”)。

答案1

假设我想添加一组允许运行mountumount无需密码的用户。所以我首先要添加一个名为“anyname”的组

sudo groupadd anyname

接下来我们需要编辑/etc/group并添加用户

anyname:x:407:

将会出现,因此附加您想要添加的用户,并以逗号分隔用户。

anyname:x:407:user1,user2,...

现在我们需要配置 sudo 以允许“anyname”组的成员实际调用 mountumount命令。

您只需将以下几行添加到 /etc/sudoers

%anyname ALL=NOPASSWD: /sbin/mount, /sbin/umount

现在sudo mount不会询问密码,但是因为一直输入 sudo 很麻烦,我们可以通过执行以下操作来避免它:

我可以创建以下名为“/usr/bin/mount”的脚本(以及类似的 umount 脚本)

#! /bin/sh
sudo /sbin/mount $*

为了使其更安全,我们可能需要将这些脚本的所有权更改为“anyname”组。

chgrp anyname /usr/bin/mount /usr/bin/umount

然后使它们仅对组“anyname”可执行

chmod g+x /usr/bin/mount  /usr/bin/umount

编辑:根据您使用的操作系统,请检查 mount 和 umount 命令的位置。它可能位于 /bin/ 而不是 /sbin。因此您可能需要进行必要的更改

重要的:顺便说一句,不要在基于 Arch 的系统上运行该脚本,因为其中所有的 bin 文件夹都是相互符号链接的。

相关内容