Я хочу решить следующий вариант использования: моя жена и я (= два отдельных пользователя linux) хотят использовать ЖЕ виртуальную машину VirtualBox Windows10. Поэтому моя идея состоит в том, чтобы иметь все настройки VirtualBox под пользователем «vmuser» и запускать VirtualBox всегда в среде vmuser.
Затем в папке / home / vmuser устанавливаются все настройки VirtualBox.
На каждом рабочем столе пользователя я добавил настольный файл «VirtualBox.desktop» с содержимым:
[Desktop Entry]
Comment=
Exec=mate-terminal -- /bin/su vmuser -w QT_QPA_PLATFORM_THEME,DISPLAY,XDG_RUNTIME_DIR -c /usr/local/bin/startVirtualBox.sh
GenericName=Go virtual
Icon=virtualbox
MimeType=
Name=VirtualBox
Path=
StartupNotify=true
Terminal=true
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=`
При нажатии на этот значок запускается файл /usr/local/bin/startVirtualBox.sh
. «-W» не заменяет существующие переменные окружения. Я использую «mate-терминал», потому что он запускается на моей машине быстрее, чем «gome-терминал», но ваш пробег может отличаться.
По некоторым для меня пока неизвестным причинам (я думаю, что проблема в / bin / sh в начале, но без этого не работает), мне нужно определить переменные среды следующим образом:
#!/bin/sh
QT_X11_NO_MITSHM=1
DISPLAY=$DISPLAY
XAUTHORITY=$XAUTHORITY
XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR
export QT_X11_NO_MITSHM
export DISPLAY
export XAUTHORITY
export XDG_RUNTIME_DIR
/usr/bin/VirtualBox
Это решение работает, как и ожидалось, несмотря на некоторые сообщения об ошибках во время запуска VirtualBox в дополнительном окне консоли:
Qt WARNING: QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 1002
Qt WARNING: Qt: Session management error: None of the authentication protocols specified are supported
Пользовательский каталог времени выполнения находится под контролем пользователя, который щелкает значок на рабочем столе (id = 1000) и процесс VirtualBox запускается под vmuser (идентификатор пользователя = 1002). Хорошо.
Но кто-нибудь знает, как от этого избавиться?
Интересный вопрос - я только что получил идею.
Предупреждение : вам всегда придется выключать виртуальную машину, не позволяйте VirtualBox «сохранять состояние»