Skip to content

Commit

Permalink
Initial commit for GitHub.
Browse files Browse the repository at this point in the history
  • Loading branch information
sbradnick committed Jan 27, 2022
0 parents commit a5198b8
Show file tree
Hide file tree
Showing 9 changed files with 399 additions and 0 deletions.
4 changes: 4 additions & 0 deletions 91-default-xrdp.preset
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
enable xrdp.service
enable xrdp-sesman.service
enable xvnc-novnc.socket
enable vncmanager.service
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# These are files for getting 'Enhanced session' working in Hyper-V:

- **91-default-xrdp.preset**: Used to control which systemd services are enabled at startup.
- **hv_sock.conf**: Ensures the "hv_conf" module is loaded.
- **sesman.ini**: Provides default settings for the 'xrdp-sesman' service.
- **startwm.sh**: Simple startup session script to check for preferred session and base binary available to start it.
- **xrdp.ini**: Provides default settings for the 'xrdp' service.
- **xrdp.service**: Used to control which systemd services are enabled at startup (currently controlled by 91-default-xrdp.preset).
- **xrdp-sesman.service**: Used to control which systemd services are enabled at startup (currently controlled by 91-default-xrdp.preset).
- **Xwrapper.config**: Controls 'allowed_users' for X11.
1 change: 1 addition & 0 deletions Xwrapper.config
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
allowed_users=anybody
1 change: 1 addition & 0 deletions hv_sock.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hv_sock
117 changes: 117 additions & 0 deletions sesman.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
;; See `man 5 sesman.ini` for details

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
; Give in relative path to user's home directory
UserWindowManager=startwm.sh
; Give in full path or relative path to /etc/xrdp
DefaultWindowManager=startwm.sh
; Give in full path or relative path to /etc/xrdp
ReconnectScript=reconnectwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false
; When RestrictOutboundClipboard=true clipboard from the
; server is not pushed to the client.
RestrictOutboundClipboard=false

[Sessions]
;; X11DisplayOffset - x11 display number offset
; Type: integer
; Default: 10
; ENHANCED
;X11DisplayOffset=200
X11DisplayOffset=0

;; MaxSessions - maximum number of connections to an xrdp server
; Type: integer
; Default: 0
MaxSessions=50

;; KillDisconnected - kill disconnected sessions
; Type: boolean
; Default: false
; if 1, true, or yes, kill session after 60 seconds
KillDisconnected=false

;; DisconnectedTimeLimit - when to kill idle sessions
; Type: integer
; Default: 0
; if not zero, the seconds before a disconnected session is killed
; min 60 seconds
DisconnectedTimeLimit=0

;; IdleTimeLimit (specify in second) - wait before disconnect idle sessions
; Type: integer
; Default: 0
; Set to 0 to disable idle disconnection.
IdleTimeLimit=0

;; Policy - session allocation policy
; Type: enum [ "Default" | "UBD" | "UBI" | "UBC" | "UBDI" | "UBDC" ]
; Default: Xrdp:<User,BitPerPixel> and Xvnc:<User,BitPerPixel,DisplaySize>
; "UBD" session per <User,BitPerPixel,DisplaySize>
; "UBI" session per <User,BitPerPixel,IPAddr>
; "UBC" session per <User,BitPerPixel,Connection>
; "UBDI" session per <User,BitPerPixel,DisplaySize,IPAddr>
; "UBDC" session per <User,BitPerPixel,DisplaySize,Connection>
Policy=Default

[Logging]
LogFile=xrdp-sesman.log
LogLevel=ERROR
EnableSyslog=0
SyslogLevel=ERROR

;
; Session definitions - startup command-line parameters for each session type
;

[Xorg]
; Specify the path of non-suid Xorg executable. It might differ depending
; on your distribution and version. The typical path is shown as follows:
;
; Fedora 26 or later : param=/usr/libexec/Xorg
; Debian 9 or later : param=/usr/lib/xorg/Xorg
; Ubuntu 16.04 or later : param=/usr/lib/xorg/Xorg
; Arch Linux : param=/usr/lib/xorg-server/Xorg
; CentOS 7 : param=/usr/bin/Xorg or param=Xorg
;
param=Xorg
; Leave the rest paramaters as-is unless you understand what will happen.
param=-config
param=xrdp/xorg.conf
param=-noreset
param=-nolisten
param=tcp
param=-logfile
param=.xorgxrdp.%s.log

[Xvnc]
param=Xvnc
param=-bs
param=-nolisten
param=tcp
param=-localhost
param=-dpi
param=96

[Chansrv]
; drive redirection, defaults to xrdp_client if not set
; ENHANCED
;FuseMountName=thinclient_drives
FuseMountName=shared-drives
; this value allows only the user to acess their own mapped drives.
; Make this more permissive (e.g. 022) if required.
FileUmask=077

[SessionVariables]
PULSE_SCRIPT=/etc/xrdp/pulse/default.pa
28 changes: 28 additions & 0 deletions startwm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#PREF_SESSION='gnome'
#PREF_SESSION='icewm'
#PREF_SESSION='kde'
#PREF_SESSION='xfce'

if [[ -e ${HOME}/.xsession ]];
then
# PREF_SESSION='[gnome|icewm|kde|xfce]'
. ${HOME}/.xsession
fi

printf "script: '%s' with PREF_SESSION: '%s' was run via shell: '%s', date: '%s'.\n" "$(basename $0)" "$PREF_SESSION" "$SHELL" "$(date)" >> ${HOME}/$(basename $0).txt

if [[ -e /usr/bin/gnome-session && $PREF_SESSION == "gnome" ]];
then
/usr/bin/gnome-session ;
elif [[ -e /usr/bin/startplasma-x11 && $PREF_SESSION = "kde" ]];
then
/usr/bin/startplasma-x11 ;
elif [[ -e /usr/bin/startxfce4 && $PREF_SESSION == "xfce" ]];
then
/usr/bin/startxfce4 ;
elif [[ -e /usr/bin/icewm-session && $PREF_SESSION == "icewm" ]];
then
/usr/bin/icewm-session ;
else
xmessage "IS 'PREF_SESSION' ($PREF_SESSION) SET?"
fi
1 change: 1 addition & 0 deletions xrdp-sesman.service
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
enable xrdp-sesman.service
Loading

0 comments on commit a5198b8

Please sign in to comment.