web-dev-qa-db-ja.com

/etc/rc.localのコマンドがパスワードを要求するのはなぜですか?

これにより、再起動が非常に面倒になります。

/etc/rc.localでファイアウォール設定をセットアップして、再起動時にパスワードの入力を求められないようにするにはどうすればよいですか? (OSはUbuntu 18.04です)

ネットワークインターフェースp2p1が永続的にゾーンtrustedに割り当てられますが、どういうわけか、これは固着していません。 (同様の問題を抱えている他の誰かと関連する投稿を見つけました 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を使用しています。これは私のネットプラン01-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

私は同じ結果を得ました。以前のように、起動時にパスワードを要求されました。

言及するのを忘れました。 Webmin がインストールされています。ネットワークデバイスのゾーン設定の構成変更がブロックされる可能性があるかどうかはわかりません。

このページ にある提案を実装しましたが、それでも認証が必要です

 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
MeSo2

私はついに回避策を見つけることができました。

アダプタp2p1にデフォルトのファイアウォールゾーンのほかに別のゾーンを設定するスクリプトを/ect/network/if-up.dフォルダーに追加する必要がありました。ソリューションについては here を参照してください。

0
MeSo2