我注意到即使检查的状态firewalld
似乎也需要sudo
. 我想尽可能降低此脚本的权限,因此,我希望用户能够以普通用户的身份检查端口状态。如有必要,他们随后可以请求升级到sudo
。
是否有可能在基于 RHEL 的系统上实现这一目标,或者您是否需要sudo
全部实现?
我注意到即使检查的状态firewalld
似乎也需要sudo
. 我想尽可能降低此脚本的权限,因此,我希望用户能够以普通用户的身份检查端口状态。如有必要,他们随后可以请求升级到sudo
。
是否有可能在基于 RHEL 的系统上实现这一目标,或者您是否需要sudo
全部实现?
维苏多
要用这个检查打开的端口
firewalld
需要管理权限 sudo。这不是很干净的方式,但你可以编辑文件
sudoers
,编辑sudoers
文件需要管理权限:sudo visudo
添加这个并替换
USER
你想要授予权限的用户名:<USER> ALL=(root) NOPASSWD: /usr/bin/firewall-cmd --list-ports
这授予
USER
执行权限firewall-cmd --list-ports
。修改系统配置和授予权限时一定要谨慎!
如何列出 Firewalld 中的开放端口
在 CentOS7 中使用 firewalld 显示开放端口列表
退出/保存对 sudoers 文件的编辑?
如何在 Linux 中编辑 Sudoers 文件
如何使用 Sudo 和 Sudoers 文件
setuid
您可以使用 . 创建一个以提升的权限运行的脚本
setuid
。setuid(2) — Linux 手册页
允许在 shell 脚本上使用 setuid
为什么我的 setuid root bash shell 脚本不起作用?
如何使用“setuid”位?
编写 setuid 或 setgid 脚本
这两种解决方案都应谨慎使用并格外小心!
firewalld
出于安全原因,建议在最后使用root
用户或具有管理权限的用户执行开放端口检查。