我知道如何编辑 /etc/sudoers,以便我可以以 sudo 身份运行命令而无需输入密码,但是有没有办法让组内的所有用户完全不使用 sudo 来运行程序。(我想要运行的程序是“mount”和“umount”)。
答案1
假设我想添加一组允许运行mount
且umount
无需密码的用户。所以我首先要添加一个名为“anyname”的组
sudo groupadd anyname
接下来我们需要编辑/etc/group
并添加用户
anyname:x:407:
将会出现,因此附加您想要添加的用户,并以逗号分隔用户。
anyname:x:407:user1,user2,...
现在我们需要配置 sudo 以允许“anyname”组的成员实际调用 mount
和umount
命令。
您只需将以下几行添加到 /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 文件夹都是相互符号链接的。