diff --git a/ubuntu/16.04/install.sh b/ubuntu/16.04/install.sh index e10e733..8435c9a 100644 --- a/ubuntu/16.04/install.sh +++ b/ubuntu/16.04/install.sh @@ -11,22 +11,24 @@ # Update our machine to the latest code if we need to. # -sudo apt update -sudo apt upgrade -y +if [ ! $(id -u) ] ; then + echo 'This script must be run with root privileges' >&2 + exit 1 +fi + +apt update +apt upgrade -y # Get git if we dont have it. -sudo apt install -y git +apt install -y git # Get the linux-azure kernel to add hyper-v sockets to the guest -sudo apt install -y linux-azure +apt install -y linux-azure if [ -f /var/run/reboot-required ]; then - echo - echo "A reboot is required in order to proceed with the install." - echo "Please reboot and re-run this script to finish the install." - echo - - exit + echo "A reboot is required in order to proceed with the install." >&2 + echo "Please reboot and re-run this script to finish the install." >&2 + exit 1 fi ############################################################################### @@ -35,10 +37,10 @@ fi export XRDP_PATH=~/git/src/github.com/neutrinolabs/xrdp # Install the xrdp service so we have the auto start behavior -sudo apt install -y xrdp +apt install -y xrdp # Get XRDP requirements -sudo apt install -y autoconf libtool libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libjpeg-dev libfuse-dev nasm +apt install -y autoconf libtool libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libjpeg-dev libfuse-dev nasm # Get XRDP if [ ! -d $XRDP_PATH ]; then @@ -52,33 +54,33 @@ cd $XRDP_PATH # Build/Install XRDP make -sudo make install +make install # Configure the installed XRDP ini files. # use vsock transport. -sudo sed -i_orig -e 's/use_vsock=false/use_vsock=true/g' /etc/xrdp/xrdp.ini +sed -i_orig -e 's/use_vsock=false/use_vsock=true/g' /etc/xrdp/xrdp.ini # use rdp security. -sudo sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini +sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini # remove encryption validation. -sudo sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini +sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini # disable bitmap compression since its local its much faster -sudo sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini +sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini # -# sudo sed -n -e 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini +# sed -n -e 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini # use the default lightdm x display -# sudo sed -i_orig -e 's/X11DisplayOffset=10/X11DisplayOffset=0/g' /etc/xrdp/sesman.ini +# sed -i_orig -e 's/X11DisplayOffset=10/X11DisplayOffset=0/g' /etc/xrdp/sesman.ini # 16.04.3 changed the allowed_users -sudo sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config +sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config # reconfigure the service -sudo systemctl daemon-reload -sudo systemctl enable xrdp.service -sudo systemctl enable xrdp-sesman.service +systemctl daemon-reload +systemctl enable xrdp.service +systemctl enable xrdp-sesman.service # Configure the policy xrdp session -sudo bash -c 'cat >/etc/polkit-1/localauthority.conf.d/02-allow-colord.conf </etc/polkit-1/localauthority.conf.d/02-allow-colord.conf < /dev/null if [ "$?" == "1" ]; then - bash -c 'echo "blacklist vmw_vsock_vmci_transport" >> /etc/modprobe.d/blacklist.conf <> /etc/modprobe.d/blacklist.conf < /dev/null +# Ensure hv_sock gets loaded +cat /etc/modules | grep hv_sock > /dev/null if [ "$?" == "1" ]; then - bash -c 'echo "hv_sock" >> /etc/modules <> /etc/modules </etc/polkit-1/localauthority.conf.d/02-allow-colord.conf </etc/polkit-1/localauthority.conf.d/02-allow-colord.conf <