2010-12-23 11:08:49 +01:00
|
|
|
#!/bin/bash
|
|
|
|
export QT_NO_KDE_INTEGRATION=1
|
2017-06-09 00:26:55 +02:00
|
|
|
# make certain that the user/group combination is valid
|
2010-12-23 11:08:49 +01:00
|
|
|
/usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit
|
2017-06-09 00:26:55 +02:00
|
|
|
#
|
|
|
|
# Handle the issue regarding USB passthru
|
|
|
|
# The following conditions apply:
|
|
|
|
# 1. If ~/.vbox/enable exists, the user accepts the security risk.
|
2019-04-05 16:49:14 +02:00
|
|
|
# 2. If ~/.vbox/disable exists, the user does not accept the risk. That file will contain the inode of /usr/lib/udev/rules.d/60-vboxdrv.rules.
|
2017-06-09 00:26:55 +02:00
|
|
|
# When that changes, the VBoxUSB_DevRules will again be displayed as that means that VB has been reloaded.
|
|
|
|
#
|
|
|
|
devrules()
|
|
|
|
{
|
2017-01-14 03:16:29 +01:00
|
|
|
/usr/lib/virtualbox/VBoxUSB_DevRules
|
2017-06-09 00:26:55 +02:00
|
|
|
if [ $? -eq 0 ] ; then
|
|
|
|
# User accepts the risk
|
|
|
|
touch ~/.vbox/enable
|
|
|
|
rm -f ~/.vbox/disable
|
|
|
|
else
|
|
|
|
# User declines the risk - save the inode
|
|
|
|
echo "" > ~/.vbox/disable
|
|
|
|
rm -f ~/.vbox/enable
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
# Start of main routine
|
|
|
|
#
|
|
|
|
# Ensure that ~/.vbox exists
|
|
|
|
mkdir -p ~/.vbox/
|
2019-04-05 16:49:14 +02:00
|
|
|
# Get the inode for /usr/lib/udev/rules.d/60-vboxdrv.rules
|
|
|
|
INODE=$(stat /usr/lib/udev/rules.d/60-vboxdrv.rules | grep Inode | cut -d' ' -f3)
|
2017-06-09 00:26:55 +02:00
|
|
|
if [ ! -f ~/.vbox/enable ] && [ ! -f ~/.vbox/disable ] ; then
|
|
|
|
# Neither file exists - find what the user wants
|
|
|
|
devrules
|
2017-01-14 03:16:29 +01:00
|
|
|
fi
|
2017-06-09 00:26:55 +02:00
|
|
|
# Get the original Inode if it exists
|
|
|
|
if [ -f ~/.vbox/disable ] ; then
|
|
|
|
read LINE < ~/.vbox/disable
|
|
|
|
else
|
|
|
|
LINE=" "
|
|
|
|
fi
|
2019-04-05 16:49:14 +02:00
|
|
|
# If user originally declined, make certain that /usr/lib/udev/rules.d/60-vboxdrv.rules has not been changed
|
2017-06-09 00:26:55 +02:00
|
|
|
if [ -f ~/.vbox/disable ] && [ "$LINE" != "$INODE" ] && [ "$LINE" != "" ] ; then
|
|
|
|
# disable is selected and the Inode has changed - ask again
|
|
|
|
devrules
|
|
|
|
fi
|
|
|
|
if [ -f ~/.vbox/disable ] ; then
|
|
|
|
echo $INODE > ~/.vbox/disable
|
|
|
|
if [ "$LINE" != "$INODE" ] ; then
|
|
|
|
if [ -f /usr/bin/kdesu ] ; then
|
|
|
|
kdesu /sbin/vbox-fix-usb-rules.sh
|
|
|
|
fi
|
|
|
|
if [ -f /usr/bin/gnomesu ] ; then
|
|
|
|
gnomesu /sbin/vbox-fix-usb-rules.sh
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
# Now run the VB GUI
|
2019-01-28 21:37:13 +01:00
|
|
|
LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox6 $@
|