VPN 계정마다 전용 NetworkManager 실행기를 두기
게이트웨이 하나에 계정 둘이면 사용자 이름을 고쳐 쓰는 것이 아니라 이름이 붙은 프로필 둘이 필요합니다. 실행기를 UUID로 향하게 하고 비밀은 에이전트가 모으게 하십시오.
VPN 계정 둘, 게이트웨이 하나, 그리고 마지막으로 사용한 사람으로 접속하는 데스크톱 아이콘. 흔한 원인은 접속 직전에 공유 프로필의 사용자 이름을 고쳐 쓰는 실행기이거나, 두 프로필이 우연히 공유하는 표시 이름을 찾는 실행기입니다. NetworkManager는 이미 UUID로 프로필을 구분하므로 아이콘은 그중 하나를 정확히 지목하고 신원은 건드리지 않을 수 있습니다. 아이콘이 지녀서는 안 되는 것은 비밀번호입니다.
실행기는 포인터이지 자격 증명 저장소가 아닙니다.
UUID를 찾고 신원을 확인하십시오
저장된 연결을 나열하고 UUID, 연결 ID, 각 프로필이 보관하는 사용자 이름을 읽으십시오. 무엇이든 만들기 전에 어느 프로필이 어느 계정의 것인지 확인하십시오, 표시 이름은 키가 아니라 라벨이기 때문입니다. 두 계정에 서로 다른 게이트웨이나 다른 프로필이 필요하다면 그것은 별도의 설정 작업입니다.
실행기에서 UUID를 사용하십시오. 표시 이름 조회는 누군가 프로필 이름을 바꿀 때까지 동작하며, 그 뒤에는 아이콘이 잘못된 계정으로, 혹은 아무것에도 접속하지 않습니다.
데스크톱 항목을 작성하십시오
데스크톱 항목에는 유형, 이름, 실행 줄이 필요합니다. 명령은 그 UUID를 올리고 NetworkManager가 비밀을 묻게 해야 하며, nmcli --ask connection up uuid ... 가 바로 그 용도입니다. 비밀이 필요할 때 프롬프트가 보이도록 Terminal=true 를 유지하십시오. 자리표시자는 실제로 확인한 UUID로 바꾸고, 프롬프트를 숨기려고만 셸 래퍼를 덧붙이지 마십시오.
Desktop Entry 명세는 Exec 를 프로그램과 그 인수로 정의합니다. 셸 스크립트가 아니며, 그럴 필요도 없습니다.
에이전트가 비밀을 보관하게 하십시오
비밀은 사용자별 에이전트, 키링, 또는 대화형 프롬프트에 속합니다. Exec 안의 비밀번호는 프로세스 목록, 데스크톱 파일, 속성 대화상자의 어떤 스크린숏에도 보입니다. 프로필에 비밀이 필요하면 지원되는 프롬프트가 그것을 모으게 하고 에이전트가 그 사용자를 위해 기억하게 하십시오.
--ask 는 설계상 대화형입니다. 무인 자동화를 위한 조리법이 아니며, 모든 인증 과제나 플러그인이 스크립트로 처리될 수 있다고 보장하지 않습니다.
sudo로 손을 뻗지 마십시오
연결을 수정하거나 활성화할 권한은 NetworkManager 가 정책을 통해 부여하는 권한이며 Unix 특권이 아니고, sudo 로 실행기를 실행해도 프로세스에 다른 사용자의 키링이 생기지 않으며 게이트웨이의 거부도 고쳐지지 않습니다. 공유 기기에서는 어떤 로컬 계정이 어떤 프로필을 보는지, 각 비밀을 누가 소유하는지 검토하십시오. 아이콘을 나눈다고 해서 그 자체로 격리가 생기지는 않습니다.
같은 게이트웨이의 활성 프로필 둘은 경로를 두고도 경쟁할 수 있습니다 또는 동시성 규칙을 위반할 수 있습니다. 그것은 정책의 문제이지 실행기의 결함이 아닙니다.
전체 동작을 검증하십시오
실행기를 한 번 활성화하고 세 가지를 확인하십시오: 어떤 UUID가 올라왔는지, 게이트웨이가 어떤 신원을 보았는지, 그리고 기대한 곳에서 비밀 프롬프트가 나타났는지. 연결이 실패하면 첫 오류 메시지를 보관하십시오. 바로가기를 자족적으로 보이게 하려고 명령줄에 비밀번호를 넣으면 그 오류가 숨겨지고 더 나쁜 문제가 생깁니다.
UUID와 계정 대응을 팀 노트에 적으십시오. 다음에 프로필을 바꿀 사람은 어떤 아이콘이 그것에 의존하는지 알아야 하며, 그 노트가 이름 변경이 장애가 되는 일을 막습니다.