我注意到,即使是检查firewalld的状态似乎也需要sudo。我希望保持这个脚本的特权尽可能低,因此,我希望用户能够检查端口状态作为一个常规用户。如果有必要,他们可以请求升级到sudo。
是否有可能在基于RHEL的系统上实现这一目标,或者您是否需要成为所有的sudo?
发布于 2023-05-31 15:26:36
visudo
要使用firewalld检查打开的端口,这需要管理特权sudo。
这不是一种非常干净的方式,但是您可以用它来编辑sudoers文件,编辑sudoers文件需要管理访问:
sudo visudo
添加此内容并替换USER,您希望授予权限的用户名如下:
ALL=(root) NOPASSWD: /usr/bin/firewall-cmd --list-ports
此授予USER执行firewall-cmd --list-ports的权限。
在修改系统配置和授予权限时要小心!
在CentOS7 7中使用firewalld显示开放端口列表
setuid
您可以创建一个使用setuid以提升的权限运行的脚本。
在shell脚本上使用setuid或setgid位会产生比它解决更多的问题--尤其是安全问题。Some系统(如Linux)甚至不尊重shell脚本上的setuid位,因此创建setuid脚本除了带来安全风险之外,还会造成不必要的可移植性问题。
<#>Both解决方案只能谨慎使用,而且要非常小心!
出于For安全原因,建议使用 firewalld at或使用 root <#>user或具有管理权限的用户执行对开放端口的检查。
https://unix.stackexchange.com/questions/747671
复制相似问题