sudo 권한으로 애플리케이션을 실행해야 하는 구성이 virtualbox에 있습니다. 나는 .desktop
sudo로 실행하기 위해 파일을 편집하고 있습니다. (sudoers 파일을 적절하게 변경하더라도 단순히 변수를 Exec
다음으로 변경하는 것은 Exec=sudo virtualbox
작동하지 않습니다.)
$ cat /usr/share/applications/virtualbox.desktop
[Desktop Entry]
Name=VirtualBox
GenericName=PC virtualization solution
Type=Application
Exec=virtualbox %U
TryExec=VirtualBox
Keywords=virtualization;
Keywords[de]=Virtualisierung;
Keywords[ru]=виртуализация;
MimeType=application/x-virtualbox-vbox;application/x-virtualbox-vbox-extpack;application/x-virtualbox-ovf;application/x-virtualbox-ova;
Icon=virtualbox
Categories=Emulator;System;Utility;
Actions=RootManager;Manager
Comment=Run several virtual systems on a single host computer
Comment[de]=Mehrere virtuelle Maschinen auf einem einzigen Rechner ausführen
Comment[it]=Esegui più macchine virtuali su un singolo computer
Comment[ko]=가상 머신
Comment[pl]=Uruchamianie wielu systemów wirtualnych na jednym komputerze gospodarza
Comment[ru]=Запуск нескольких виртуальных машин на одном компьютере
Comment[sv]=Kör flera virtuella system på en enda värddator
[Desktop Action Manager]
Exec=virtualbox
Name=Open Oracle VM Manager
Name[de]=Oracle VM Manager öffnen
[Desktop Action RootManager]
Exec=gnome-terminal -e "bash -c 'sudo -i /usr/bin/virtualbox;'"
Name=Open Manager as Admin
위의 방법은 현재로서는 효과가 있고 좋은 해결 방법이지만 인증은 gnome 터미널에서 발생한다는 점에 유의하세요. 이 문제를 우회하기 위해 pkexec
(예: ) 를 사용하고 싶지만 Exec=pkexec virtualbox
다음 오류가 발생합니다.
~$ pkexec virtualbox
Qt WARNING: could not connect to display
Qt FATAL: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Aborted (core dumped)
몇 가지 가능한 원인/해결책을 확인했습니다.
- https://askubuntu.com/questions/1041588/virtualbox-not-launching-on-ubuntu-18-04-qt-lib-problem
- pkexec를 사용하여 GUI 응용 프로그램을 루트로 실행하는 방법은 무엇입니까?
응용 프로그램이 사용되지 않기 때문에 내 문제는 첫 번째 링크와 별로 관련이 없다고 생각합니다 pkexec
. 두 번째 링크는 매우 복잡해 보이지만 단지 그럴 수도 있는 사용자 정의 작업을 freedesktop 정책 패키지에 추가합니다. 필요.
어떤 통찰력이 있습니까?
답변1
두 번째 링크가 작동합니다.
$ cat /usr/share/polkit-1/actions/org.freedesktop.policykit.virtualbox.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.pkexec.virtualbox">
<description>Run VirtualBox as Admin</description>
<message>Authentication is required to run VirtualBox as administrator</message>
<icon_name>virtualbox</icon_name>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/virtualbox</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
</action>
</policyconfig>
그리고
$ cat /usr/share/applications/virtualbox.desktop
[Desktop Entry]
Name=VirtualBox
GenericName=PC virtualization solution
Type=Application
Exec=pkexec virtualbox %U
TryExec=VirtualBox
Keywords=virtualization;
Keywords[de]=Virtualisierung;
Keywords[ru]=виртуализация;
MimeType=application/x-virtualbox-vbox;application/x-virtualbox-vbox-extpack;application/x-virtualbox-ovf;application/x-virtualbox-ova;
Icon=virtualbox
Categories=Emulator;System;Utility;
Actions=RootManager;Manager
Comment=Run several virtual systems on a single host computer
Comment[de]=Mehrere virtuelle Maschinen auf einem einzigen Rechner ausführen
Comment[it]=Esegui più macchine virtuali su un singolo computer
Comment[ko]=가상 머신
Comment[pl]=Uruchamianie wielu systemów wirtualnych na jednym komputerze gospodarza
Comment[ru]=Запуск нескольких виртуальных машин на одном компьютере
Comment[sv]=Kör flera virtuella system på en enda värddator
[Desktop Action Manager]
Exec=virtualbox
Name=Open Oracle VM Manager
Name[de]=Oracle VM Manager öffnen
[Desktop Action RootManager]
Exec=pkexec virtualbox
Name=Open Oracle VM Manager (admin)