我正在尝试使用以下命令禁用 Azure 上 CentOS7.3 上的防火墙:
sudo systemctl disable iptables-services firewalld
不幸的是我收到以下错误:
"Failed to execute operation: No such file or directory"
有趣的是,当我不使用 sudo 运行该程序时,操作系统似乎正在查找文件,并且我得到以下信息:
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Authentication is required to manage system service or unit files.
Authenticating as: root
但是我的身份验证失败(因为 root 帐户被禁用,我使用 SSH 密钥登录)。
对于如何继续前进的任何建议都将不胜感激:)
答案1
我认为您可能对 iptables 服务使用了错误的服务名称。
另外,如果你有一个默认的 centos 安装,我会假设防火墙已经到位(而不是 iptables _service)——所以如果你真的想停止所有的防火墙,可能systemctl stop firewalld
现在就可以这样做(systemctl disable firewalld
如果你真的就是想这么做)。
最简单的方法可能是确认该部分是否正确:
sudo systemctl | grep iptable
错误消息的原因是,在 systemd 的任何搜索路径中均未找到名为 iptables-services.service 的单元文件。
快速说明一下:
sudo systemctl status nosuchthing Unit nosuchthing.service could not be found.
与确实存在的事物相比:
sudo systemctl status sshd sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
顺便说一下,所显示的路径并不是 systemd 查看的唯一路径。
除非您这样做是为了安装不同的防火墙管理器/前端,否则我倾向于建议保留防火墙,并打开您需要的端口。
Firewalld 相当简单(参见文档:http://www.firewalld.org/), 打开特定端口很简单(再次假设默认为 centos7):sudo firewall-cmd --zone public --add-port=PORT/PROTO --permanent && sudo firewall-cmd reload