nmcliには、初期VMの設定中に権限が不足しています。

nmcliには、初期VMの設定中に権限が不足しています。

仮想マシン(Debian Buster OS)の設定を自動化していますが、
システムのインストール後に設定プロセス中に自動化ツールが起動します。何よりも(順番に):

  • インストールするNetworkManager
  • ユーザーXを追加、sudoグループにユーザーを追加する
  • 次のコマンドを使用して、ユーザーXの接続を取得します。nmcli

最後のステップは失敗します。Error: Failed to add 'REDACTED' connection: Insufficient privileges.
ただし、VMにログインして(rootまたはユーザーXとして)接続を手動で追加すると機能します(sudoユーザー

私が見つけることができる唯一の関連ログは次のとおりです。

> journalctl -xe -u NetworkManager
...
audit: op="connection-add" ... result="fail" reason="Insufficient privileges"

いいえpolkitまたはログdbus

オートメーションツールにいくつかのロギングを追加しました。つまり、nmcli general permissions接続をインポートする前にダンプします。

PERMISSION                                                        VALUE 
org.freedesktop.NetworkManager.enable-disable-network             no    
org.freedesktop.NetworkManager.enable-disable-wifi                no    
org.freedesktop.NetworkManager.enable-disable-wwan                no    
org.freedesktop.NetworkManager.enable-disable-wimax               no    
org.freedesktop.NetworkManager.sleep-wake                         no    
org.freedesktop.NetworkManager.network-control                    auth  
org.freedesktop.NetworkManager.wifi.share.protected               no    
org.freedesktop.NetworkManager.wifi.share.open                    no    
org.freedesktop.NetworkManager.settings.modify.system             no    
org.freedesktop.NetworkManager.settings.modify.own                auth  
org.freedesktop.NetworkManager.settings.modify.hostname           auth  
org.freedesktop.NetworkManager.settings.modify.global-dns         auth  
org.freedesktop.NetworkManager.reload                             auth  
org.freedesktop.NetworkManager.checkpoint-rollback                auth  
org.freedesktop.NetworkManager.enable-disable-statistics          no    
org.freedesktop.NetworkManager.enable-disable-connectivity-check  no

これは、ユーザーが何も実行できないことを明確に示しています。
しかし、ログインするとき:

PERMISSION                                                        VALUE            
org.freedesktop.NetworkManager.enable-disable-network             yes              
org.freedesktop.NetworkManager.enable-disable-wifi                yes              
org.freedesktop.NetworkManager.enable-disable-wwan                yes              
org.freedesktop.NetworkManager.enable-disable-wimax               yes              
org.freedesktop.NetworkManager.sleep-wake                         no              
org.freedesktop.NetworkManager.network-control                    yes              
org.freedesktop.NetworkManager.wifi.share.protected               yes              
org.freedesktop.NetworkManager.wifi.share.open                    yes              
org.freedesktop.NetworkManager.settings.modify.system             yes              
org.freedesktop.NetworkManager.settings.modify.own                yes              
org.freedesktop.NetworkManager.settings.modify.hostname           auth 
org.freedesktop.NetworkManager.settings.modify.global-dns         auth 
org.freedesktop.NetworkManager.reload                             auth 
org.freedesktop.NetworkManager.checkpoint-rollback                auth 
org.freedesktop.NetworkManager.enable-disable-statistics          yes              
org.freedesktop.NetworkManager.enable-disable-connectivity-check  yes

私はこれを手動で仮想マシンから複製しようとしました。 apt update && apt install -y network-manager network-manager-openvpn && useradd userx && usermod -a -G sudo userx && su - userx -c "nmcli connection import type openvpn file ...."運がなかった。ただ働く...

オートメーションを設定するために使用したツール:salt(SaltStack)
ユーザーを追加する:ユーザー。現在状態。
私はこれが塩の問題だと思います

ここに問題が何であるかを見つけるのに役立つ人はいますか?

ベストアンサー1

SSHを介してリモートでログインすると、Policykitは要求プロセスを異なる方法で処理できます。

NetworkManagerのPolicyKit権限のデフォルト設定は、コンピュータの前に座っている間でもケーブルを操作できるため、この方法で設定されます。したがって、ルート以外のローカルユーザーは、ルート以外のリモートユーザーよりも信頼されます。

(しかし、rootユーザーはPolicyKitを要求しなくても常に無料パスを受け取ることができます。)

デフォルトでは、特権を持つユーザーを使用するか、それに応じてPolicyKitを構成します。

バラよりhttps://wiki.archlinux.org/index.php/Polkit。権限を表示します<allow_inactive>。 PolicyKitを最もよく設定する方法に慣れていません。一部のディストリビューションではJavaScriptフラグメントを作成し、Debianでは他のものを作成する必要があります。

おすすめ記事