diff --git a/kubuntu/18.04/install.sh b/kubuntu/18.04/install.sh new file mode 100644 index 0000000..3b6ecae --- /dev/null +++ b/kubuntu/18.04/install.sh @@ -0,0 +1,115 @@ +#!/bin/bash + +# +# This script is for Kubuntu 18.04 Bionic Beaver to download and install XRDP+XORGXRDP via +# source. +# +# Major thanks to: http://c-nergy.be/blog/?p=11336 for the tips. +# + +############################################################################### +# Use HWE kernel packages +# +HWE="" +#HWE="-hwe-18.04" + +############################################################################### +# Update our machine to the latest code if we need to. +# + +if [ "$(id -u)" -ne 0 ]; then + echo 'This script must be run with root privileges' >&2 + exit 1 +fi + +apt update && apt upgrade -y + +if [ -f /var/run/reboot-required ]; then + 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 + +############################################################################### +# XRDP +# + +# Install hv_kvp utils +apt install -y linux-tools-virtual${HWE} +apt install -y linux-cloud-tools-virtual${HWE} + +# Install the xrdp service so we have the auto start behavior +apt install -y xrdp + +systemctl stop xrdp +systemctl stop xrdp-sesman + +# Configure the installed XRDP ini files. +# use vsock transport. +sed -i_orig -e 's/use_vsock=false/use_vsock=true/g' /etc/xrdp/xrdp.ini +# use rdp security. +sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini +# remove encryption validation. +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 +sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini + +# Add script to setup the kubuntu session properly +if [ ! -e /etc/xrdp/startkubuntu.sh ]; then +cat >> /etc/xrdp/startkubuntu.sh << EOF +#!/bin/sh +export XDG_CURRENT_DESKTOP=KDE +export XDG_SESSION_DESKTOP=KDE +export XDG_DATA_DIRS=/usr/share/plasma:/usr/local/share:/usr/share:/var/lib/snapd/desktop +export XDG_CONFIG_DIRS=/etc/xdg/xdg-plasma:/etc/xdg:/usr/share/kubuntu-default-settings/kf5-settings +exec /etc/xrdp/startwm.sh +EOF +chmod a+x /etc/xrdp/startkubuntu.sh +fi + +# use the script to setup the kubuntu session +sed -i_orig -e 's/startwm/startkubuntu/g' /etc/xrdp/sesman.ini + +# rename the redirected drives to 'shared-drives' +sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini + +# Changed the allowed_users +sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config + +# Blacklist the vmw module +if [ ! -e /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf ]; then +cat >> /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf < /etc/modules-load.d/hv_sock.conf +fi + +# Retrieve all available polkit actions and separate them accordingly +pkaction > /tmp/available_actions +actions=$(sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/;/g' /tmp/available_actions) +rm /tmp/available_actions + +# Configure the policies for xrdp session +cat > /etc/polkit-1/localauthority/50-local.d/xrdp-allow-all.pkla <&2 + exit 1 +fi + +apt update && apt upgrade -y + +if [ -f /var/run/reboot-required ]; then + 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 + +############################################################################### +# XRDP +# + +# Install hv_kvp utils +apt install -y linux-tools-virtual${HWE} +apt install -y linux-cloud-tools-virtual${HWE} + +# Install the xrdp service so we have the auto start behavior +apt install -y xrdp + +systemctl stop xrdp +systemctl stop xrdp-sesman + +# Configure the installed XRDP ini files. +# do not use vsock transport since newer versions of xrdp do not support it. +sed -i_orig -e 's/port=3389/port=vsock:\/\/-1:3389/g' /etc/xrdp/xrdp.ini +# use rdp security. +sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini +# remove encryption validation. +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 +sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini + +# Add script to setup the kubuntu session properly +if [ ! -e /etc/xrdp/startkubuntu.sh ]; then +cat >> /etc/xrdp/startkubuntu.sh << EOF +#!/bin/sh +export XDG_CURRENT_DESKTOP=KDE +export XDG_SESSION_DESKTOP=KDE +export XDG_DATA_DIRS=/usr/share/plasma:/usr/local/share:/usr/share:/var/lib/snapd/desktop +export XDG_CONFIG_DIRS=/etc/xdg/xdg-plasma:/etc/xdg:/usr/share/kubuntu-default-settings/kf5-settings +exec /etc/xrdp/startwm.sh +EOF +chmod a+x /etc/xrdp/startkubuntu.sh +fi + +# use the script to setup the kubuntu session +sed -i_orig -e 's/startwm/startkubuntu/g' /etc/xrdp/sesman.ini + +# rename the redirected drives to 'shared-drives' +sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini + +# Changed the allowed_users +sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config + +# Blacklist the vmw module +if [ ! -e /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf ]; then +cat >> /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf < /etc/modules-load.d/hv_sock.conf +fi + +# Retrieve all available polkit actions and separate them accordingly +pkaction > /tmp/available_actions +actions=$(sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/;/g' /tmp/available_actions) +rm /tmp/available_actions + +# Configure the policies for xrdp session +cat > /etc/polkit-1/localauthority/50-local.d/xrdp-allow-all.pkla <