为什么 /etc/rc.local 中的命令要求输入密码?

为什么 /etc/rc.local 中的命令要求输入密码?

这使得重新启动非常烦人。

如何设置防火墙设置,/etc/rc.local 以便在重新启动时不会提示我输入密码?(操作系统是 Ubuntu 18.04)

我想要我的网络接口点对点1永久指定给区域值得信赖,但不知何故,这并没有坚持下去。(我找到了一篇相关帖子,其中有人遇到了类似的问题https://access.redhat.com/discussions/2779921

因此我添加了以下几行/etc/rc.local,现在每次重启时我都需要额外输入 3 次登录密码:

# assign p2p1 to trusted zone
firewall-cmd --permanent --change-zone=p2p1 --zone=trusted
# restart network and firewall services
service network-manager restart
firewall-cmd --reload

有没有更好的方法?NetworkManager 正在控制设备:

sudo nmcli dev status 
  DEVICE  TYPE      STATE        CONNECTION   
  eth0    ethernet  connected    netplan-eth0 
  p2p1    ethernet  connected    netplan-p2p1 
  wlan0   wifi      unavailable  --           
  lo      loopback  unmanaged    --    

我使用 netplan 进行网络配置。这是我的 netplan01-netcfg.yaml文件

network:
    version: 2
    renderer: NetworkManager
    ethernets:
#       WAN
        eth0:
            dhcp4: no
            dhcp6: no
            addresses: [76.80.54.221/29]
            gateway4: 76.80.54.217
            nameservers:
                addresses: [209.18.47.61,209.18.47.62]
#       LAN
        p2p1:
            dhcp4: no
            dhcp6: no     
            addresses: [192.168.4.5/24]
            gateway4: 192.168.4.1

更新:

这是我在启动时收到的身份验证提示:

需要身份验证

系统策略阻止更改防火墙配置

经过进一步挖掘,我发现这个帖子。因此我删除了上述尝试的修复方法并实施了这个新建议:

创建了一个 systemd 单元文件作为临时修复: /etc/systemd/system/myzones.service

[Unit]
Description=Custom Zones
After=network.target network.service

[Service]
Type=oneshot
User=root
Group=root
ExecStart=/bin/nmcli connection modify eth0 connection.zone public
ExecStart=/bin/nmcli connection modify p2p1 connection.zone internal

[Install]
WantedBy=multi-user.target

然后我启用了该服务并重新启动

systemctl daemon-reload
systemctl enable myzones.service
reboot

我得到了相同的结果。它像以前一样在启动时提示我输入密码。

我忘了说了。我有网页管理安装。我不确定这是否会阻止对网络设备区域设置的配置更改。

我实施了这一页但仍然得到需要身份验证

 sudo chown root /etc/systemd/system/myzones.service
 sudo chmod +s /etc/systemd/system/myzones.service

我在启动时按下了 F2 键来查看发生了什么,结果发现了一个错误。错误内容如下:

...
[FAILED] failed to start custom zones.
see 'systemctl status myzones.service' for details.
...
[FAILED] failed to start Samba NMB Daemon.
see 'systemctl status smbd.service' for details.

我跑过去sudo journalctl -xe,得到了这个:

...
lines 1242-1264/1264 (END)
Aug 21 07:54:54 courtens.org postfix/master[2584]: warning: /usr/lib    /postfix/sbin/smtpd: bad command startup -- throttling
Aug 21 07:55:04 courtens.org postfix/local[4968]: error: open database /etc/aliasesmyhostname.db: No such file or directory
Aug 21 07:55:04 courtens.org postfix/local[4968]: fatal: open dictionary: expecting "type:name" form instead of "="
Aug 21 07:55:05 courtens.org postfix/master[2584]: warning: process /usr/lib/postfix/sbin/local pid 4968 exit status 1
Aug 21 07:55:05 courtens.org postfix/master[2584]: warning: /usr/lib/postfix/sbin/local: bad command startup -- throttling
Aug 21 07:55:26 courtens.org dbus-daemon[2715]: [session uid=1000 pid=2715] Activating via systemd: service name='org.gnome.Terminal' unit='gnome-terminal-server.service' requested 
Aug 21 07:55:26 courtens.org systemd[2411]: Starting GNOME Terminal Server...
-- Subject: Unit UNIT has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit UNIT has begun starting up.
Aug 21 07:55:26 courtens.org dbus-daemon[2715]: [session uid=1000 pid=2715] Successfully activated service 'org.gnome.Terminal'
Aug 21 07:55:26 courtens.org systemd[2411]: Started GNOME Terminal Server.
-- Subject: Unit UNIT has finished start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit UNIT has finished starting up.
-- 
-- The start-up result is RESULT.
Aug 21 07:55:39 courtens.org sudo[5015]: nathaniel : TTY=pts/0 ; PWD=/home/nathaniel ; USER=root ; COMMAND=/bin/journalctl -xe
Aug 21 07:55:39 courtens.org sudo[5015]: pam_unix(sudo:session): session opened for user root by (uid=0)

建议我做什么?谢谢。

答案1

我终于找到了解决方法。

我需要向/ect/network/if-up.d文件夹添加一个脚本,为我的适配器 p2p1 设置除默认防火墙区域之外的其他区域。请参阅这里寻求解决方案。

相关内容