nmcli에는 초기 VM 설정 중에 권한이 부족합니다.

nmcli에는 초기 VM 설정 중에 권한이 부족합니다.

가상 머신(Debian Buster OS)의 구성을 자동화하고 있는데
시스템 설치 후 구성 프로세스 중에 자동화 도구가 시작됩니다. 무엇보다도 (순서대로):

  • 설치하다NetworkManager
  • 사용자 X 추가, sudo그룹 에 사용자 추가
  • 다음 명령을 사용하여 사용자 X의 연결을 가져옵니다.nmcli

마지막 단계는 실패합니다. Error: Failed to add 'REDACTED' connection: Insufficient privileges.
그러나 VM에 로그인하고(루트 또는 사용자 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 권한에 대한 기본 구성은 컴퓨터 앞에 앉아 있는 동안에도 케이블을 조작할 수 있기 때문에 이런 방식으로 설정됩니다. 따라서 루트가 아닌 로컬 사용자는 루트가 아닌 원격 사용자보다 더 신뢰됩니다.

(그런데 루트 사용자는 PolicyKit을 요청하지 않고도 항상 무료 패스를 받을 수 있습니다.)

기본적으로 권한이 있는 사용자를 사용하거나 그에 따라 PolicyKit을 구성하십시오.

바라보다https://wiki.archlinux.org/index.php/Polkit. 권한을 봅니다 <allow_inactive>. PolicyKit을 가장 잘 구성하는 방법에 익숙하지 않습니다. 일부 배포판에서는 JavaScript 조각을 작성해야 하고, Debian에서는 다른 것을 작성해야 합니다...

관련 정보