如何在没有 sudo(或没有 root 权限)的情况下检查 UFW 状态?

如何在没有 sudo(或没有 root 权限)的情况下检查 UFW 状态?

我正在运行一些脚本来检查 UFW 状态,并且希望sudo ufw status在不执行 的情况下运行sudo。我希望找到一个防火墙或者联邦快递我想添加自己到其中的一个群组,但是我没找到任何群组。

我怎样才能允许任何用户 X 执行ufw status无需 root 身份或请求须藤密码?


更新

我想尝试将自己的文件添加到/etc/sudoers.d/,但是很懒,所以决定复制一个已经存在的文件,如下所示:

sudo cp /etc/sudoers.d/mintupdate /etc/sudoers.d/firewall_status

不要这样做!您将无法执行 sudo 或再次登录。我不得不进行启动恢复。请改用:

sudo visudo -f /etc/sudoers.d/ufwstatus

现在只需按照下面接受的答案进行操作。

答案1

这是一个/etc/sudoers.d/适合我使用的文件:

$ sudo cat /etc/sudoers.d/ufwstatus
Cmnd_Alias      UFWSTATUS = /usr/sbin/ufw status

%ufwstatus      ALL=NOPASSWD: UFWSTATUS

然后添加新的“ufwstatus”组(这里添加为系统团体):

sudo groupadd -r ufwstatus

必须将您的非特权用户添加到ufwstatus组中,例如

sudo gpasswd --add testuser ufwstatus

为了使更改生效,用户需要再次登录:

su - testuser

然后

testuser@xenial-vm:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       192.168.1.0/24
3389/tcp                   ALLOW       192.168.1.0/24
111                        ALLOW       192.168.1.0/24
2049                       ALLOW       192.168.1.0/24

但其他ufw命令是不允许的(即使是轻微的变体,例如status --verbose):

testuser@xenial-vm:~$ sudo ufw status --verbose
Sorry, user testuser is not allowed to execute '/usr/sbin/ufw status --verbose' as root on xenial-vm.

testuser@xenial-vm:~$ sudo ufw disable
Sorry, user testuser is not allowed to execute '/usr/sbin/ufw disable' as root on xenial-vm.

相关内容