diff --git a/common/Makefile.am b/common/Makefile.am index 33cfc1e5..3d7e8bd1 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -1,5 +1,21 @@ -EXTRA_DIST = d3des.h arch.h os_calls.h list.h file.h parse.h defines.h file_loc.h log.h os_calls.h ssl_calls.h thread_calls.h trans.h xrdp_constants.h - +EXTRA_DIST = \ + arch.h \ + d3des.h \ + defines.h \ + file.h \ + file_loc.h \ + list.h \ + log.h \ + os_calls.h \ + os_calls.h \ + parse.h \ + rail.h \ + ssl_calls.h \ + thread_calls.h \ + trans.h \ + xrdp_client_info.h \ + xrdp_constants.h \ + xrdp_rail.h AM_CFLAGS = \ -DXRDP_CFG_PATH=\"${sysconfdir}/xrdp\" \ diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am index 2689407b..507809bd 100644 --- a/docs/man/Makefile.am +++ b/docs/man/Makefile.am @@ -1,14 +1,17 @@ -EXTRA_DIST = sesman.ini.5 xrdp.ini.5 xrdp.8 xrdp-sesman.8 xrdp-sesrun.8 - -xrdpman5dir=$(mandir)/man5 - -xrdpman5_DATA = \ +man_MANS = \ + xrdp-dis.1 \ sesman.ini.5 \ - xrdp.ini.5 - -xrdpman8dir=$(mandir)/man8 - -xrdpman8_DATA = \ + xrdp.ini.5 \ xrdp.8 \ + xrdp-chansrv.8 \ + xrdp-genkeymap.8 \ + xrdp-keygen.8 \ + xrdp-sesadmin.8 \ xrdp-sesman.8 \ - xrdp-sesrun.8 + xrdp-sesrun.8 \ + xrdp-sessvc.8 + +noinst_man_MANS = \ + xrdp-xcon.8 + +EXTRA_DIST = $(man_MANS) $(noinst_man_MANS) diff --git a/docs/man/sesman.ini.5 b/docs/man/sesman.ini.5 index ebefd120..2bf69297 100644 --- a/docs/man/sesman.ini.5 +++ b/docs/man/sesman.ini.5 @@ -1,10 +1,9 @@ .\" .TH "sesman.ini" "5" "0.1.0" "xrdp team" "" .SH "NAME" -.LP \fBsesman.ini\fR \- Configuration file for \fBsesman\fR(8) + .SH "DESCRIPTION" -.LP This is the man page for \fBsesman.ini\fR, \fBsesman\fR(8) configuration file. It is composed by a number of sections, each one composed by a section name, enclosed by square brackets, folowed by a list of \fI\fR=\fI\fR lines. @@ -29,49 +28,38 @@ All options and values (except for file names and paths) are case insensitive, a For any of the following parameter, if it's specified more than one time the last entry encountered will be used. \fBNOTE\fR: if any of these options is specified outside its section, it will be \fIignored\fR. -.SH "GLOBALS" -.LP -.TP +.SH "GLOBALS" The options to be specified in the \fB[globals]\fR section are the following: -.br .TP \fBListenAddress\fR=\fIip address\fR Specifies sesman listening address. Default is 0.0.0.0 (all interfaces) -.br .TP \fBListenPort\fR=\fIport number\fR Specifies sesman listening port. Default is 3350 -.br .TP \fBEnableUserWindowManager\fR=\fI[0|1]\fR If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables user specific window manager, that is, anyone can define it's own script executed by sesman when starting a new session, specified by \fBUserWindowManager\fR -.br .TP \fBUserWindowManager\fR=\fIstartwm.sh\fR This option specifies the script run by sesman when starting a session and per\-user window manager is enabled. .br The path is relative to user's HOME directory -.br .TP \fBDefaultWindowManager\fR=\fI${SESMAN_BIN_DIR}/startwm.sh\fR This contains full path to the default window manager startup script used by sesman to start a session -.SH "LOGGING" -.LP -.TP +.SH "LOGGING" The following parameters can be used in the \fB[logging]\fR section: -.br .TP \fBLogFile\fR=\fI${SESMAN_LOG_DIR}/sesman.log\fR This options contains the path to logfile. It can be either absolute or relative, and the default is \fI${SESMAN_LOG_DIR}/sesman.log\fR -.br .TP \fBLogLevel\fR=\fIlevel\fR @@ -86,41 +74,33 @@ This option can have one of the following values: \fBINFO\fR or \fB3\fR \- Logs errors, warnings and informational messages \fBDEBUG\fR or \fB4\fR \- Log everything. If \fBsesman\fR is compiled in debug mode, this options will output many more low\-level message, useful for developers -.br .TP \fBEnableSyslog\fR=\fI[0|1]\fR If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables logging to syslog. Otherwise syslog is disabled. -.br .TP \fBSyslogLevel\fR=\fIlevel\fR This option sets the logging level for syslog. It can have the same values of \fBLogLevel\fR. If \fBSyslogLevel\fR is greater than \fBLogLevel\fR, its value is lowered to that of \fBLogLevel\fR. -.SH "SESSIONS" -.LP -.TP +.SH "SESSIONS" The following parameters can be used in the \fB[Sessions]\fR section: -.br .TP \fBX11DisplayOffset\fR=\fI\fR -Specifies the first X display number available for sesman(8). This prevents sesman from interfering with real X11 servers. The default is 10. -.br +Specifies the first X display number available for \fBsesman\fP(8). This prevents sesman from interfering with real X11 servers. The default is 10. .TP \fBMaxSessions\fR=\fI\fR Sets the maximum number of simultaneous session on terminal server. .br If unset or set to \fI0\fR, unlimited session are allowed. -.br .TP \fBKillDisconnected\fR=\fI[0|1]\fR If set to \fB1\fR, \fBtrue\fR or \fByes\fR, every session will be killed when the user disconnects. .br \fI\-this option is currently ignored!\-\fR -.br .TP \fBIdleTimeLimit\fR=\fI\fR @@ -129,7 +109,6 @@ Sets the the time limit before an idle session is disconnected. If set to \fI0\fR, automatic disconnection is disabled. .br \fI\-this option is currently ignored!\-\fR -.br .TP \fBDisconnectedTimeLimit\fR=\fI\fR @@ -138,87 +117,67 @@ Sets the the time limit before a disconnected session is killed. If set to \fI0\fR, automatic killing is disabled. .br \fI\-this option is currently ignored!\-\fR -.br -.SH "SECURITY" -.LP -.TP +.SH "SECURITY" The following parameters can be used in the \fB[Sessions]\fR section: -.br .TP \fBAllowRootLogin\fR=\fI[0|1]\fR If set to \fB1\fR, \fBtrue\fR or \fByes\fR enables root login on the terminal server -.br .TP \fBMaxLoginRetry\fR=\fI[0|1]\fR The number of login attempts that are allowed on terminal server. If set to \fI0\fR, unlimited attempts are allowed. The default value for this field is \fI3\fR. -.br .TP \fBTerminalServerUsers\fR=\fItsusers\fR Only the users belonging to the group \fItsusers\fR are allowed to login on terminal server. .br If unset or set to an invalid or non\-existent group, login for all users is enabled. -.br .TP \fBTerminalServerAdmins\fR=\fItsadmins\fR Sets the group which a user shall belong to have session management rights. .br \fI\-this option is currently ignored!\-\fR -.br + .SH "EXAMPLES" -.LP This is an example \fBsesman.ini\fR: +.nf [Globals] -.br ListenAddress=127.0.0.1 -.br ListenPort=3350 -.br EnableUserWindowManager=1 -.br UserWindowManager=startwm.sh -.br DefaultWindowManager=startwm.sh [Logging] -.br LogFile=/usr/local/xrdp/sesman.log -.br LogLevel=DEBUG -.br EnableSyslog=0 -.br SyslogLevel=DEBUG [Sessions] -.br MaxSessions=10 -.br KillDisconnected=0 -.br IdleTimeLimit=0 -.br DisconnectedTimeLimit=0 [Security] -.br AllowRootLogin=1 -.br MaxLoginRetry=3 -.br TerminalServerUsers=tsusers -.br TerminalServerAdmins=tsadmins +.fi + .SH "FILES" -.LP ${SESMAN_CFG_DIR}/sesman.ini + .SH "SEE ALSO" -.LP -sesman(8) sesrun(8) xrdp(8) xrdp.ini(5) +.BR sesman (8), +.BR sesrun (8), +.BR xrdp (8), +.BR xrdp.ini (5) for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/docs/man/xrdp-chansrv.8 b/docs/man/xrdp-chansrv.8 new file mode 100644 index 00000000..aa4747d8 --- /dev/null +++ b/docs/man/xrdp-chansrv.8 @@ -0,0 +1,46 @@ +.TH "xrdp\-chansrv" "8" "0.7.0" "xrdp team" "" +.SH "NAME" +\fBxrdp\-chansrv\fR \- \fBxrdp\fR channel server + +.SH "SYNTAX" +.B xrdp\-chansrv + +.SH "DESCRIPTION" +\fBxrdp\-chansrv\fR is the \fBxrdp\fR(8) channel server, which manages the Remote Desktop Protocol (RDP) sub-channels. +This program is only forked internally by \fBxrdp\-sesman\fP(8). +.br +Currently \fBxrdp\-chansrv\fP knows about the following channels: +.RE 8 +.TP +.B cliprdr +Clipboard Redirection +.TP +.B rdpsnd +Remote Desktop Protocol Sound +.TP +.B rdpdr +Remote Desktop Protocol Device Redirection +.TP +.B rail +Remote Applications Integrated Locally +.TP +.B drdynvc +Dynamic Virtual Channel +.RS + +.SH FILES +.TP +.I /tmp/.xrdp/xrdp_chansrv_socket_* +UNIX socket used by external programs to implement channels. +.TP +.I /tmp/.xrdp/xrdp_api_* +UNIX socket used by \fBxrdp\-chansrv\fP to communicate with \fBxrdp\-sesman\fP. +.TP +.I $HOME/xrdp-chansrv.log +Log file used by \fBxrdp\-chansrv\fP(8). + +.SH "SEE ALSO" +.BR xrdp\-sesman (8), +.BR sesman.ini (5). + +for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/docs/man/xrdp-dis.1 b/docs/man/xrdp-dis.1 new file mode 100644 index 00000000..089621ae --- /dev/null +++ b/docs/man/xrdp-dis.1 @@ -0,0 +1,23 @@ +.TH "xrdp-dis" "8" "0.7.0" "xrdp team" +.SH NAME +xrdp\-dis \- xrdp disconnect utility + +.SH SYNOPSIS +.B xrdp\-dis + +.SH DESCRIPTION +.PP +\fBxrdp\-dix\fP is run with no parameters to disconnect your xrdp session. + +.SH ENVIRONMENT +.TP +.B DISPLAY +to get the default host and display number. + +.SH FILES +.TP +.I /tmp/.xrdp/xrdp_disconnect_display_* +UNIX socket used to communicate with the \fBxrdp\fP(8) session manager. + +.SH SEE ALSO +.BR xrdp (1). diff --git a/docs/man/xrdp-genkeymap.8 b/docs/man/xrdp-genkeymap.8 new file mode 100644 index 00000000..068f04dd --- /dev/null +++ b/docs/man/xrdp-genkeymap.8 @@ -0,0 +1,67 @@ +.TH "xrdp\-genkeymap" "8" "0.1.0" "xrdp team" "" +.de URL +. \\$2 \(laURL: \\$1 \(ra\\$3 +.. +.if \n[.g] .mso www.tmac + +.SH "NAME" +\fBxrdp\-genkeymap\fR \- key map generator for XRDP + +.SH "SYNTAX" +.B xrdp\-genkeymap +.I file + +.SH "DESCRIPTION" +\fBxrdp\-genkeymap\fR extracts the key map used by the currently running X session to generated a mapping from Remote Desktop Protocol (RDP) key codes to X keysyms and Unicode code points. + +.SH OPTIONS +.TP +.I outfile +The key map information is stored in the file named \fIoutfile\fP. + +.SH "FILES" +.TP +.I /etc/xrdp/km-XXXX.ini +Files containing the keyboard mapping for language \fIXXXX\fP, which is a 4 digit hexadecimal number identifying the country and language code. +.RS 8 +.TP +.B 0405 +cs czech +.TP +.B 0407 +de german +.TP +.B 0409 +en-us us english +.TP +.B 040c +fr french +.TP +.B 0410 +it italy +.TP +.B 0416 +br Portuguese (Brazil) +.TP +.B 0419 +ru russian +.TP +.B 041d +se swedish +.TP +.B 0809 +en-uk uk english +.RE + +.SH "AUTHORS" +Jay Sorg +.br +Simone Fedele + +.SH "SEE ALSO" +.BR xrdp (8), +.BR setxkbmap (1), +.BR unicode (7), +.URL "https://github.com/FreeRDP/FreeRDP/wiki/Keyboard" "Description of Keyboard Input mapping" . + +for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/docs/man/xrdp-keygen.8 b/docs/man/xrdp-keygen.8 new file mode 100644 index 00000000..71269f5c --- /dev/null +++ b/docs/man/xrdp-keygen.8 @@ -0,0 +1,40 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH xrdp\-keygen 8 "0.7.0" "xrdp team" +.SH NAME +xrdp\-keygen \- xrdp RSA key generation utility + +.SH SYNOPSIS +.B xrdp\-keygen xrdp +< \fIoutfile\fP | \fBauto\fP > +.br +.B xrdp\-keygen test + +.SH DESCRIPTION +\fBxrdp\-keygen\fP generates the file +.I /etc/xrdp/rsakeys.ini +which contains the RSA key pair used to perform authentication to +remote clients. The public key is self-signed. + +.SH OPTIONS +This program takes one of the following options: +.TP +\fBxrdp\fP \fIoutfile\fP +Generate a new key pair. +The key data is stored in the file named \fIoutfile\fP. +.br +If \fBauto\fP is used as \fIoutfile\fP, the default file \fI/etc/xrdp/rsakeys.ini\fP gets created if it does not yet exists. +.TP +.B test +Generate a test key pair and print information to standard output. + +.SH FILES +.TP +.I /etc/xrdp/rsakeys.ini +RSA public and private key pair used to identify this XRDP server. + +.SH SEE ALSO +.BR xrdp (8), +.BR xrdp\-sesman (8). + +.SH AUTHOR +This manual page was originally written by Vincent Bernat . diff --git a/docs/man/xrdp-sesadmin.8 b/docs/man/xrdp-sesadmin.8 new file mode 100644 index 00000000..ade1dd58 --- /dev/null +++ b/docs/man/xrdp-sesadmin.8 @@ -0,0 +1,57 @@ +.TH "xrdp-sesadmin" "8" "0.7.0" "xrdp team" +.SH NAME +xrdp\-sesadmin \- console XRDP sessions administration tool + +.SH SYNOPSIS +.B xrdp\-sesadmin +.RI [ options ] +.BI -c= command + +.SH DESCRIPTION +This manual page documents briefly the +.B xrdp\-sesadmin +command. +.PP +\fBxrdp\-sesadmin\fP is a console program to administer running XRDP sessions. + +.SH OPTIONS +A summary of options is included below. +.TP +.BI \-u= username +\fIUsername\fP for authentication on the server. +Defaults to \fBroot\fP. + +.TP +.BI \-p= password +The \fIpassword\fP to authenticate with. +The default is to ask for the password interactively. + +.TP +.BI \-s= server +The host address of the \fIserver\fP to connect to. +Defaults to \fBlocalhost\fP. + +.TP +.BI \-i= port +The TCP \fIport\fP number to connect to. +Defaults to \fB3350\fP. + +.TP +.BI \-c= command +Specifies the \fIcommand\fP to execute on the server. +Valid commands are: +.RS 4 +.TP +.B list +List currently active sessions. +.TP +.BI kill: sid +Kills the session specified the given \fIsession id\fP. +(not yet implemented). +.RE + +.SH FILES +xrdp\-sesadmin.log + +.SH SEE ALSO +.BR xrdp (8). diff --git a/docs/man/xrdp-sesman.8 b/docs/man/xrdp-sesman.8 index a224c639..9316e926 100644 --- a/docs/man/xrdp-sesman.8 +++ b/docs/man/xrdp-sesman.8 @@ -1,28 +1,28 @@ -.TH "sesman" "8" "0.1.0" "xrdp team" "" +.TH "xrdp\-sesman" "8" "0.1.0" "xrdp team" "" .SH "NAME" -.LP -\fBsesman\fR \- \fBxrdp\fR(8) session manager +xrdp\-sesman \- \fBxrdp\fR(8) session manager + .SH "SYNTAX" -.LP -sesman [ \-\-nodaemon | \-\-kill | \-\-help ] +.B xrdp\-sesman +.RB [ \-\-nodaemon | \-\-kill | \-\-help ] + .SH "DESCRIPTION" -.LP -\fBsesman\fR is \fBxrdp\fR(8) session manager. +\fBxrdp\-sesman\fR is \fBxrdp\fR(8) session manager. .br It manages user sessions by authenticating the user and starting the appropriate Xserver + .SH "OPTIONS" -.LP .TP \fB\-n\fR, \fB\-\-nodaemon\fR -Starts \fBsesman\fR in foreground instead of starting it as a daemon. +Starts \fBxrdp\-sesman\fR in foreground instead of starting it as a daemon. .TP \fB\-k\fR, \fB\-\-kill\fR -Kills running \fBsesman\fR daemon. +Kills running \fBxrdp\-sesman\fR daemon. .TP \fB\-h\fR, \fB\-\-help\fR Output help information and exit. + .SH "FILES" -.LP ${SESMAN_BIN_DIR}/sesman .br ${SESMAN_BIN_DIR}/sesrun @@ -32,13 +32,16 @@ ${SESMAN_CFG_DIR}/sesman.ini ${SESMAN_LOG_DIR}/sesman.log .br ${SESMAN_PID_DIR}/sesman.pid + .SH "AUTHORS" -.LP Jay Sorg .br Simone Fedele + .SH "SEE ALSO" -.LP -sesman.ini(5) sesrun(8) xrdp(8) xrdp.ini(5) +.BR sesman.ini (5), +.BR xrdp\-sesrun (8), +.BR xrdp (8), +.BR xrdp.ini (5) for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/docs/man/xrdp-sesrun.8 b/docs/man/xrdp-sesrun.8 index 5a1b2bdf..c48c7eb5 100644 --- a/docs/man/xrdp-sesrun.8 +++ b/docs/man/xrdp-sesrun.8 @@ -1,47 +1,50 @@ -.TH "sesrun" "8" "0.1.0" "xrdp team" "" +.TH "xrdp\-sesrun" "8" "0.7.0" "xrdp team" "" .SH "NAME" -.LP -\fBsesrun\fR \- \fBsesman\fR(8) session launcher +xrdp\-sesrun \- \fBsesman\fR(8) session launcher + .SH "SYNTAX" -.LP -sesrun +.B xrdp\-sesrun +.I server username password width height bpp + .SH "DESCRIPTION" -.LP -\fBsesrun\fR starts a session using \fBsesman\fR(8). +\fBxrdp\-sesrun\fR starts a session using \fBxrdp\-sesman\fR(8). .br This is a tool useful for testing, it simply behaves like xrdp when some user logs in a new session and authenticates, thus starting a new session. + .SH "OPTIONS" -.LP .TP - +.I server Server on which sesman is running .TP - +.I username user name of the session being started .TP - +.I password user password .TP - +.I width Screen width .TP - +.I height Screen height .TP - +.I bpp Session color depth + .SH "FILES" -.LP ${SESMAN_BIN_DIR}/sesman .br ${SESMAN_BIN_DIR}/sesrun + .SH "AUTHORS" -.LP Jay Sorg .br Simone Fedele + .SH "SEE ALSO" -.LP -sesman(8) sesman.ini(5) xrdp(8) xrdp.ini(5) +.BR xrdp\-sesman (8), +.BR sesman.ini (5), +.BR xrdp (8), +.BR xrdp.ini (5) for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/docs/man/xrdp-sessvc.8 b/docs/man/xrdp-sessvc.8 new file mode 100644 index 00000000..322c968a --- /dev/null +++ b/docs/man/xrdp-sessvc.8 @@ -0,0 +1,26 @@ +.TH "xrdp\-sessvc" "8" "0.7.0" "xrdp team" "" +.SH "NAME" +xrdp\-sessvc \- \fBxrdp\fR session supervisor + +.SH "SYNTAX" +.B xrdp\-sessman +.I x_pid wm_pid + +.SH "DESCRIPTION" +\fBxrdp\-sessvc\fR is the \fBxrdp\fR(8) session supervisor, which monitors the running X server and Windows Manager. +As soon as one of them quits, the other process is terminated as well. +.br +This program is only executed internally by \fBxrdp\-sesman\fP(8). + +.SH "OPTIONS" +.TP +.I x_pid +The process ID of the forked X server to monitor. +.TP +.I wm_pid +The process ID of the forked Window Manager to monitor. + +.SH "SEE ALSO" +.BR xrdp\-sesrun (8). + +for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/docs/man/xrdp-xcon.8 b/docs/man/xrdp-xcon.8 new file mode 100644 index 00000000..9d83b646 --- /dev/null +++ b/docs/man/xrdp-xcon.8 @@ -0,0 +1,14 @@ +.TH "xrdp-xcon" "8" "0.7.0" "xrdp team" +.SH NAME +xrdp\-xcon \- X11 event loop debugging helper for XRDP + +.SH SYNOPSIS +.B xrdp\-xcon + +.SH DESCRIPTION +.PP +\fBxrdp\-xcon\fP is a X application, which just opens a connection to the X server and polls for events. +It's pretty useless. + +.SH SEE ALSO +.BR xev (1). diff --git a/docs/man/xrdp.8 b/docs/man/xrdp.8 index b8e0d7fd..6db90076 100644 --- a/docs/man/xrdp.8 +++ b/docs/man/xrdp.8 @@ -1,19 +1,18 @@ .TH "xrdp" "8" "0.1.0" "xrdp team" "" .SH "NAME" -.LP \fBxrdp\fR \- a Remote Desktop Protocol (RDP) server + .SH "SYNTAX" -.LP xrdp [ \-\-nodaemon | \-\-kill | \-\-help ] + .SH "DESCRIPTION" -.LP \fBxrdp\fR is a Remote Desktop Protocol (RDP) Server. .br Unlike Windows NT/2000/2003 server, \fBxrdp\fR will not display a Windows desktop but an X window desktop to the user. It can also be used as a VNC\->RDP bridge. + .SH "OPTIONS" -.LP .TP \fB\-n\fR, \fB\-\-nodaemon\fR Starts \fBxrdp\fR in foreground instead of starting it as a daemon. @@ -23,8 +22,8 @@ Kills running \fBxrdp\fR daemon. .TP \fB\-h\fR, \fB\-\-help\fR Output help information and exit. + .SH "FILES" -.LP ${XRDP_BIN_DIR}/xrdp .br ${XRDP_CFG_DIR}/xrdp.ini @@ -32,13 +31,16 @@ ${XRDP_CFG_DIR}/xrdp.ini ${XRDP_LOG_DIR}/xrdp.log .br ${XRDP_PID_DIR}/xrdp.pid + .SH "AUTHORS" -.LP Jay Sorg .br Simone Fedele + .SH "SEE ALSO" -.LP -xrdp.ini(5) sesman(8) sesman.ini(5) sesrun(8) +.BR xrdp.ini (5), +.BR sesman (8), +.BR sesman.ini (5), +.BR sesrun (8) for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/docs/man/xrdp.ini.5 b/docs/man/xrdp.ini.5 index f46b5609..7b32a9f0 100644 --- a/docs/man/xrdp.ini.5 +++ b/docs/man/xrdp.ini.5 @@ -1,99 +1,240 @@ -.\" -.TH "xrdp.ini" "5" "0.1.0" "xrdp team" "" +.TH "xrdp.ini" "5" "0.7.0" "xrdp team" "" .SH "NAME" -.LP \fBxrdp.ini\fR \- Configuration file for \fBxrdp\fR(8) + .SH "DESCRIPTION" -.LP This is the man page for \fBxrdp.ini\fR, \fBxrdp\fR(8) configuration file. -It is composed by a number of sections, each one composed by a section name, enclosed by square brackets, folowed by a list of \fI\fR=\fI\fR lines. +It is composed by a number of sections, each one composed by a section name, enclosed by square brackets, followed by a list of \fI\fR=\fI\fR lines. + +\fBxrdp.ini\fR supports the following sections: + +.TP +\fB[Globals]\fP \- sets some global configuration settings for \fBxrdp\fR(8). + +.TP +\fB[Logging]\fP \- logging subsystem parameters + +.TP +\fB[Channels]\fP \- channel subsystem parameters -\fBxrdp.ini\fR is contains a \fB[Globals]\fR section, which sets some global configuration settings for \fBxrdp\fR(8), and one or more "connection" sections which contain the info on which services \fBxrdp\fR(8) can connect to. +.TP +\fI[Connection]\fP \- contain the info on which services \fBxrdp\fR(8) can connect to. .LP All options and values (except for file names and paths) are case insensitive, and are described in detail below. -.SH "GLOBALS" -.LP -.TP +.SH "GLOBALS" The options to be specified in the \fB[Globals]\fR section are the following: -.br -.TP +.TP +\fBaddress\fP=\fIip address\fP +Specifies xrdp listening address. Default is 0.0.0.0 (all interfaces) + +.TP +\fBautorun\fP=\fIsession_name\fP +Automatically run the connection specified by \fIsession_name\fP, which must match a section as described below. +By default a drop-down list with all available connections is shown. +A connection can also be chosen by the connecting client by setting the \fBLOGIN DOMAIN\fP to a valid \fIsession name\fP. + +.TP \fBbitmap_cache\fR=\fI[0|1]\fR -If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap caching in \fBxrdp\fR(8) -.br +If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap caching in \fBxrdp\fR(8). -.TP +.TP \fBbitmap_compression\fR=\fI[0|1]\fR -If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap compression in \fBxrdp\fR(8) -.SH "CONNECTIONS" -.LP - +If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap compression in \fBxrdp\fR(8). + +.TP +\fBbulk_compression\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables compression of bulk data in \fBxrdp\fR(8). + +.TP +\fBchannel_code\fP=\fI[0|1]\fP +If set to \fB0\fR, \fBfalse\fR or \fBno\fR this option disables all channels \fBxrdp\fR(8). +See section \fBCHANNELS\fP below for more fine grained options. + +.TP +\fBcrypt_level\fP=\fIlow|medium|high\fP +.\" +RDP connection are controlled by two encryption settings: \fIEncryption Level\fP and \fIEncryption Method\fP. +The only supported \fIEncryption Method\fP is \fB40BIT_ENCRYPTION\fP, \fB128BIT_ENCRYPTION\fP and \fB56BIT_ENCRYPTION\fP are currently not supported. +This option controls the \fIEncryption Level\fP: +.RS 8 +.TP +.B low +All data sent from the client to the server is protected by encryption based on the maximum key strength supported by the client. +.I This is the only level that the traffic sent by the server to client is not encrypted. +.TP +.B medium +All data sent between the client and the server is protected by encryption based on the maximum key strength supported by the client. +.TP +.B high +All data sent between the client and server is protected by encryption based on the server's maximum key strength. +.RE + +.TP +\fBfork\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR for each incoming connection \fBxrdp\fR(8) forks a sub-process instead of using threads. + +.TP +\fBhidelogwindow\fP=\fI[0|1]\fP +If set to \fB1\fP, \fBtrue\fP or \fByes\fP, \fBxrdp\fP will not show a window for log messages. + +.TP +\fBmax_bpp\fP=\fI[8|15|16|24]\fP +Limit the color depth by specifying the maximum number of bits per pixel. + +.TP +\fBport\fP=\fIport\fP +Specify TCP port to listen on for incoming connections. +The default for RDP is \fB3389\fP. + +.TP +\fBtcp_keepalive\fP=\fI[yes|no]\fP +Regulate if the listening socket uses socket option \fBSO_KEEPALIVE\fP. +If set to \fB1\fP, \fBtrue\fP or \fByes\fP and the network connection disappears without closing messages, the connection will be closed. + +.TP +\fBtcp_nodelay\fP=\fI[yes|no]\fP +Regulate if the listening socket uses socket option \fBTCP_NODELAY\fP. +If set to \fB1\fP, \fBtrue\fP or \fByes\fP, no buffering will be performed in the TCP stack. + +.TP +\fBblack\fP=\fI000000\fP +.TP +\fBgrey\fP=\fIc0c0c0\fP +.TP +\fBdark_grey\fP=\fI808080\fP +.TP +\fBblue\fP=\fI0000ff\fP +.TP +\fBdark_blue\fP=\fI00007f\fP +.TP +\fBwhite\fP=\fIffffff\fP +.TP +\fBred\fP=\fIff0000\fP +.TP +\fBgreen\fP=\fI00ff00\fP +.TP +\fBbackground\fP=\fI000000\fP +These options override the colors used internally by \fBxrdp\fP(8) to draw the login and log windows. +Colors are defined using a hexadecimal (hex) notation for the combination of Red, Green, and Blue color values (RGB). +The lowest value that can be given to one of the light sources is 0 (hex 00). +The highest value is 255 (hex FF). + +.SH "LOGGING" +The following parameters can be used in the \fB[logging]\fR section: + +.TP +\fBLogFile\fR=\fI${SESMAN_LOG_DIR}/sesman.log\fR +This options contains the path to logfile. It can be either absolute or relative, and the default is \fI${SESMAN_LOG_DIR}/sesman.log\fR + +.TP +\fBLogLevel\fR=\fIlevel\fR +This option can have one of the following values: + +\fBCORE\fR or \fB0\fR \- Log only core messages. these messages are _always_ logged, regardless the logging level selected. + +\fBERROR\fR or \fB1\fR \- Log only error messages + +\fBWARNING\fR, \fBWARN\fR or \fB2\fR \- Logs warnings and error messages + +\fBINFO\fR or \fB3\fR \- Logs errors, warnings and informational messages + +\fBDEBUG\fR or \fB4\fR \- Log everything. If \fBsesman\fR is compiled in debug mode, this options will output many more low\-level message, useful for developers + +.TP +\fBEnableSyslog\fR=\fI[0|1]\fR +If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables logging to syslog. Otherwise syslog is disabled. + +.TP +\fBSyslogLevel\fR=\fIlevel\fR +This option sets the logging level for syslog. It can have the same values of \fBLogLevel\fR. If \fBSyslogLevel\fR is greater than \fBLogLevel\fR, its value is lowered to that of \fBLogLevel\fR. + +.SH "CHANNELS" +The Remote Desktop Protocol supports several channels, which are used to transfer additional data like sound, clipboard data and others. +Channel names not listed here will be blocked by \fBxrdp\fP. +Not all channels are supported in all cases, so setting a value to \fItrue\fP is a pre-requisite, but does not force it's use. +.br +Channels can also be enabled or disabled on a per connection basis by prefixing each setting with \fBchannel.\fP in the channel section. + +.TP +\fBrdpdr\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for device re-direction is allowed. + +.TP +\fBrdpsnd\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for sound is allowed. + +.TP +\fBdrdynvc\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel to initiate additional dynamic virtual channels is allowed. + +.TP +\fBcliprdr\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for clipboard re-direction is allowed. + +.TP +\fBrail\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for remote applications integrated locally (RAIL) is allowed. + +.TP +\fBxrdpvr\fP=\fI[0|1]\fP +If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for XRDP Video streaming is allowed. -.TP +.SH "CONNECTIONS" A connection section is made of a section name, enclosed in square brackets, and the following entries: -.br .TP \fBname\fR=\fI\fR The name displayed in \fBxrdp\fR(8) login window's combo box. -.br .TP \fBlib\fR=\fI../vnc/libvnc.so\fR Sets the library to be used with this connection. -.br .TP \fBusername\fR=\fI\fR|\fIask\fR Specifies the username used for authenticating in the connection. If set to \fIask\fR, user name should be provided in the login window. -.br .TP \fBpassword\fR=\fI\fR|\fIask\fR Specifies the password used for authenticating in the connection. If set to \fIask\fR, password should be provided in the login window. -.br .TP \fBip\fR=\fI127.0.0.1\fR Specifies the ip address of the host to connect to. -.br .TP \fBport\fR=\fI\fR|\fI\-1\fR Specifies the port number to connect to. If set to \fI\-1\fR, the default port for the specified library is used. + .SH "EXAMPLES" -.LP This is an example \fBxrdp.ini\fR: +.nf [Globals] -.br bitmap_cache=yes -.br bitmap_compression=yes - [vnc1] -.br name=sesman -.br lib=../vnc/libvnc.so -.br username=ask -.br password=ask -.br ip=127.0.0.1 -.br port=\-1 +.fi + .SH "FILES" -.LP ${XRDP_CFG_DIR}/xrdp.ini + .SH "SEE ALSO" -.LP -xrdp(8) sesman(8) sesrun(8) sesman.ini(5) +.BR xrdp (8), +.BR sesman (8), +.BR sesrun (8), +.BR sesman.ini (5) for more info on \fBxrdp\fR see http://xrdp.sf.net diff --git a/faq-general.txt b/faq-general.txt index e1905cb9..e63804cb 100644 --- a/faq-general.txt +++ b/faq-general.txt @@ -5,12 +5,18 @@ Q. What is RDP? A. RDP stands for Remote Desktop Protocol. Its the protocol used by Windows terminal servers to talk to the terminal server clients. + Q. What is xrdp? A. xrdp, usually spell lower case, is as open source implementation of the RDP protocol. + Q. I can't get it to compile in Ubuntu. What can I do? A. See faq-compile.txt. + +Q. Can I use LDAP? + +A. Yes, xrdp uses PAM and thus can be configured to use LDAP for authentication. diff --git a/sesman/chansrv/Makefile.am b/sesman/chansrv/Makefile.am index d200509a..89753430 100644 --- a/sesman/chansrv/Makefile.am +++ b/sesman/chansrv/Makefile.am @@ -1,4 +1,14 @@ -EXTRA_DIST = chansrv.h clipboard.h devredir.h sound.h +EXTRA_DIST = \ + chansrv.h \ + chansrv_fuse.h \ + clipboard.h \ + clipboard_common.h \ + clipboard_file.h \ + devredir.h \ + drdynvc.h \ + rail.h \ + sound.h \ + xcommon.h EXTRA_DEFINES = EXTRA_INCLUDES = diff --git a/sesman/tools/Makefile.am b/sesman/tools/Makefile.am index ab3612d0..140c6820 100644 --- a/sesman/tools/Makefile.am +++ b/sesman/tools/Makefile.am @@ -13,9 +13,11 @@ INCLUDES = \ bin_PROGRAMS = \ xrdp-sesrun \ - xrdp-sestest \ xrdp-sesadmin \ - xrdp-dis \ + xrdp-dis + +noinst_PROGRAMS = \ + xrdp-sestest \ xrdp-xcon xrdp_sesrun_SOURCES = \ diff --git a/xorg/X11R7.6/buildx.sh b/xorg/X11R7.6/buildx.sh index 6108707a..3b2bad78 100755 --- a/xorg/X11R7.6/buildx.sh +++ b/xorg/X11R7.6/buildx.sh @@ -25,14 +25,13 @@ download_file() { + local file url status file=$1 # if we already have the file, don't download it - if [ -r downloads/$file ]; then - return 0 - fi - - cd downloads + if [ -r downloads/$file ]; then + return 0 + fi echo "downloading file $file" @@ -142,6 +141,7 @@ download_file() remove_modules() { + local mod_file mod_dir mod_args if [ -d cookies ]; then rm cookies/* fi @@ -153,21 +153,17 @@ remove_modules() exit 0 fi - cd build_dir - - while read line + while IFS=: read mod_file mod_dir mod_args do - mod_dir=`echo $line | cut -d':' -f2` - if [ -d $mod_dir ]; then - rm -rf $mod_dir + if [ -d build_dir/$mod_dir ]; then + rm -rf build_dir/$mod_dir fi done < ../$data_file - - cd .. } extract_it() { + local mod_file mod_name mod_args comp mod_file=$1 mod_name=$2 mod_args=$3 @@ -177,8 +173,8 @@ extract_it() fi # download file - download_file $mod_file - if [ $? -ne 0 ]; then + if ! download_file $mod_file + then echo "" echo "failed to download $mod_file - aborting build" echo "" @@ -189,13 +185,15 @@ extract_it() # if pkg has not yet been extracted, do so now if [ ! -d $mod_name ]; then - echo $mod_file | grep -q tar.bz2 - if [ $? -eq 0 ]; then - tar xjf ../downloads/$mod_file > /dev/null 2>&1 - else - tar xzf ../downloads/$mod_file > /dev/null 2>&1 - fi - if [ $? -ne 0 ]; then + case "$mod_file" in + *.tar.bz2) comp=j ;; + *.tar.gz) comp=z ;; + *.tar.xz) comp=J ;; + *.tar) comp= ;; + *) echo "unknown compressed module $mod_name" ; exit 1 ;; + esac + if ! tar x${comp}f ../downloads/$mod_file > /dev/null + then echo "error extracting module $mod_name" exit 1 fi @@ -205,13 +203,13 @@ extract_it() cd $mod_name # check for patches if [ -e ../../$mod_name.patch ]; then - patch -p1 < ../../$mod_name.patch + patch -p1 < ../../$mod_name.patch fi # now configure echo "executing ./configure --prefix=$PREFIX_DIR $mod_args" - ./configure --prefix=$PREFIX_DIR $mod_args - if [ $? -ne 0 ]; then - echo "configuration failed for module $mn" + if ! ./configure --prefix=$PREFIX_DIR $mod_args + then + echo "configuration failed for module $mod_name" exit 1 fi @@ -222,6 +220,7 @@ extract_it() make_it() { + local mod_file mod_name mod_args mod_file=$1 mod_name=$2 mod_args=$3 @@ -238,8 +237,8 @@ make_it() echo "*** processing module $mod_name ($count of $num_modules) ***" echo "" - extract_it $mod_file $mod_name "$mod_args" - if [ $? -ne 0 ]; then + if ! extract_it $mod_file $mod_name "$mod_args" + then echo "" echo "extract failed for module $mod_name" echo "" @@ -248,8 +247,8 @@ make_it() # make module if [ ! -e cookies/$mod_name.made ]; then - (cd build_dir/$mod_name ; make) - if [ $? -ne 0 ]; then + if ! make -C build_dir/$mod_name + then echo "" echo "make failed for module $mod_name" echo "" @@ -259,8 +258,8 @@ make_it() fi # install module - (cd build_dir/$mod_name ; make install) - if [ $? -ne 0 ]; then + if ! make -C build_dir/$mod_name install + then echo "" echo "make install failed for module $mod_name" echo "" @@ -270,9 +269,9 @@ make_it() # special case after installing python make this sym link # so Mesa builds using this python version case "$mod_name" in - *Python-2*) - (cd build_dir/$mod_name ; ln -s python $PREFIX_DIR/bin/python2) - ;; + *Python-2*) + ln -s python build_dir/$mod_name/$PREFIX_DIR/bin/python2 + ;; esac touch cookies/$mod_name.installed @@ -316,9 +315,9 @@ else fi if ! test -d $PREFIX_DIR; then - echo "dir does not exit, creating [$PREFIX_DIR]" - mkdir $PREFIX_DIR - if ! test $? -eq 0; then + echo "dir does not exist, creating [$PREFIX_DIR]" + if ! mkdir $PREFIX_DIR + then echo "mkdir failed [$PREFIX_DIR]" exit 0 fi @@ -333,8 +332,8 @@ export CFLAGS="-I$PREFIX_DIR/include -fPIC -O2" # prefix dir must exist... if [ ! -d $PREFIX_DIR ]; then - mkdir -p $PREFIX_DIR - if [ $? -ne 0 ]; then + if ! mkdir -p $PREFIX_DIR + then echo "$PREFIX_DIR does not exist; failed to create it - cannot continue" exit 1 fi @@ -348,8 +347,8 @@ fi # create a downloads dir if [ ! -d downloads ]; then - mkdir downloads - if [ $? -ne 0 ]; then + if ! mkdir downloads + then echo "error creating downloads directory" exit 1 fi @@ -357,8 +356,8 @@ fi # this is where we do the actual build if [ ! -d build_dir ]; then - mkdir build_dir - if [ $? -ne 0 ]; then + if ! mkdir build_dir + then echo "error creating build_dir directory" exit 1 fi @@ -366,22 +365,18 @@ fi # this is where we store cookie files if [ ! -d cookies ]; then - mkdir cookies - if [ $? -ne 0 ]; then + if ! mkdir cookies + then echo "error creating cookies directory" exit 1 fi fi -while read line +while IFS=: read mod_file mod_dir mod_args do - mod_file=`echo $line | cut -d':' -f1` - mod_dir=`echo $line | cut -d':' -f2` - mod_args=`echo $line | cut -d':' -f3` mod_args=`eval echo $mod_args` make_it $mod_file $mod_dir "$mod_args" - done < $data_file echo "build for X OK" @@ -389,9 +384,8 @@ echo "build for X OK" X11RDPBASE=$PREFIX_DIR export X11RDPBASE -cd rdp -make -if [ $? -ne 0 ]; then +if ! make -C rdp +then echo "error building rdp" exit 1 fi @@ -401,10 +395,10 @@ strip X11rdp cp X11rdp $X11RDPBASE/bin if [ "$2" = "drop" ]; then - echo "" - echo "dropping you in dir, type exit to get out" - bash - exit 1 + echo "" + echo "dropping you in dir, type exit to get out" + bash + exit 1 fi echo "All done" diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini index 7b2e33a8..bdf1b177 100644 --- a/xrdp/xrdp.ini +++ b/xrdp/xrdp.ini @@ -36,7 +36,7 @@ SyslogLevel=DEBUG # LogLevel and SysLogLevel could by any of: core, error, warning, info or debug [channels] -# Channel names not listed here will be blocket by XRDP. +# Channel names not listed here will be blocked by XRDP. # You can block any channel by setting its value to false. # IMPORTANT! All channels are not supported in all use # cases even if you set all values to true. diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c index 4badf44d..bfcc7548 100644 --- a/xrdp/xrdp_wm.c +++ b/xrdp/xrdp_wm.c @@ -573,7 +573,7 @@ xrdp_wm_init(struct xrdp_wm *self) q = (char *)list_get_item(names, index); if ((g_strncasecmp("globals", q, 8) != 0) && (g_strncasecmp("Logging", q, 8) != 0) && - (g_strncasecmp("channels", q, 8) != 0)) + (g_strncasecmp("channels", q, 9) != 0)) { g_strncpy(section_name, q, 255); break;