#!/bin/bash # # This script is for Debian 12 Bookworm to download and install XRDP. # # 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 # Not available on Debian 12. #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 Debian session properly # Tested on Debian 12, should work for at least GNOME and KDE now (probably more). # See https://wiki.archlinux.org/title/Environment_variables#Examples source /etc/os-release if [ ! -e /etc/xrdp/startdebian.sh ]; then cat >> /etc/xrdp/startdebian.sh << EOF #!/bin/sh export GNOME_SHELL_SESSION_MODE=$ID export XDG_CURRENT_DESKTOP=$ID:$XDG_CURRENT_DESKTOP exec /etc/xrdp/startwm.sh EOF chmod a+x /etc/xrdp/startdebian.sh fi # use the script to setup the Debian session sed -i_orig -e 's/startwm/startdebian/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 # Configure the policy xrdp session cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <