允许某个组的用户在没有 sudo 的情况下运行命令

w4e*_*wet 11 linux sudo passwords

我知道如何编辑 /etc/sudoers 以便我可以在无需输入密码的情况下以 sudo 身份运行命令,但是有没有一种方法可以让一个组的所有用户在没有 sudo 的情况下完全运行程序。(我要运行的程序是“mount”和“umount”)。

Sto*_*rux 13

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

sudo groupadd anyname
Run Code Online (Sandbox Code Playgroud)

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

anyname:x:407:
Run Code Online (Sandbox Code Playgroud)

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

anyname:x:407:user1,user2,...
Run Code Online (Sandbox Code Playgroud)

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

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

%anyname ALL=NOPASSWD: /sbin/mount, /sbin/umount
Run Code Online (Sandbox Code Playgroud)

现在sudo mount不会询问密码,但由于一直输入 sudo 很痛苦,我们可以通过 dong 避免它:

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

#! /bin/sh
sudo /sbin/mount $*
Run Code Online (Sandbox Code Playgroud)

为了使这稍微更安全,我们可能希望将这些脚本的所有权更改为“anyname”组。

chgrp anyname /usr/bin/mount /usr/bin/umount
Run Code Online (Sandbox Code Playgroud)

然后使它们只能对“anyname”组执行

chmod g+x /usr/bin/mount  /usr/bin/umount
Run Code Online (Sandbox Code Playgroud)

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

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