]> andersk Git - test.git/blame - shellinabox/shellinaboxd.man.in
- Added the --css command line option to make incremental changes to the style sheet...
[test.git] / shellinabox / shellinaboxd.man.in
CommitLineData
7460295f
MG
1'\" t
2.\" shellinaboxd.man -- Make command line applications available as AJAX web applications
e0bb8a33 3.\" Copyright (C) 2008-2009 Markus Gutschke <markus@shellinabox.com>
7460295f
MG
4.\"
5.\" This program is free software; you can redistribute it and/or modify
6.\" it under the terms of the GNU General Public License version 2 as
7.\" published by the Free Software Foundation.
8.\"
9.\" This program is distributed in the hope that it will be useful,
10.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
11.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12.\" GNU General Public License for more details.
13.\"
14.\" You should have received a copy of the GNU General Public License along
15.\" with this program; if not, write to the Free Software Foundation, Inc.,
16.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17.\"
18.\" In addition to these license terms, the author grants the following
19.\" additional rights:
20.\"
21.\" If you modify this program, or any covered work, by linking or
22.\" combining it with the OpenSSL project's OpenSSL library (or a
23.\" modified version of that library), containing parts covered by the
24.\" terms of the OpenSSL or SSLeay licenses, the author
25.\" grants you additional permission to convey the resulting work.
26.\" Corresponding Source for a non-source form of such a combination
27.\" shall include the source code for the parts of OpenSSL used as well
28.\" as that of the covered work.
29.\"
30.\" You may at your option choose to remove this additional permission from
31.\" the work, or from any part of it.
32.\"
33.\" It is possible to build this program in a way that it loads OpenSSL
34.\" libraries at run-time. If doing so, the following notices are required
35.\" by the OpenSSL and SSLeay licenses:
36.\"
37.\" This product includes software developed by the OpenSSL Project
38.\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)
39.\"
40.\" This product includes cryptographic software written by Eric Young
41.\" (eay@cryptsoft.com)
42.\"
43.\"
44.\" The most up-to-date version of this program is always available from
45.\" http://shellinabox.com
46.\"
47.TH SHELLINABOXD 1 "Dec 25, 2008"
48.SH NAME
49shellinaboxd \- publish command line shell through AJAX interface
50.SH SYNOPSIS
51.TP
52.B shellinaboxd
53[\ \fB-b\fP\ | \fB--background\fP[\fB=\fP\fIpidfile\fP]\ ]
2809cd15 54#ifdef HAVE_OPENSSL
7460295f 55[\ \fB-c\fP\ | \fB--cert=\fP\fIcertdir\fP\ ]
2809cd15 56#endif
293c6c6b 57[\ \fB--cert-fd=\fP\fIfd\fP\ ]
1f771613 58[\ \fB--css=\fP\fIfilename\fP\ ]
d1edcc0e 59[\ \fB--cgi\fP[\fB=\fP\fIportrange\fP]\ ]
7460295f
MG
60[\ \fB-d\fP\ | \fB--debug\fP\ ]
61[\ \fB-f\fP\ | \fB--static-file=\fP\fIurl\fP:\fIfile\fP\ ]
62[\ \fB-g\fP\ | \fB--group=\fP\fIgid\fP\ ]
63[\ \fB-h\fP\ | \fB--help\fP\ ]
f0c6fd39 64[\ \fB--linkify\fP=[\fBnone\fP|\fBnormal\fP|\fBaggressive\fP]\ ]
5ba94b37 65[\ \fB--localhost-only\fP\ ]
46f2036a 66[\ \fB--no-beep\fP\ ]
7460295f
MG
67[\ \fB-n\fP\ | \fB--numeric\fP\ ]
68[\ \fB-p\fP\ | \fB--port=\fP\fIport\fP\ ]
69[\ \fB-s\fP\ | \fB--service=\fP\fIservice\fP\ ]
2809cd15 70#ifdef HAVE_OPENSSL
7460295f 71[\ \fB-t\fP\ | \fB--disable-ssl\fP\ ]
2809cd15 72#endif
b624088c 73[\ \fB--disable-ssl-menu\fP\ ]
7460295f 74[\ \fB-q\fP\ | \fB--quiet\fP\ ]
d9b6bc27 75[\ \fB-u\fP\ | \fB--user=\fP\fIuid\fP\ ]
7460295f
MG
76[\ \fB-v\fP\ | \fB--verbose\fP\ ]
77[\ \fB--version\fP\ ]
78.SH DESCRIPTION
79The
80.B shellinaboxd
81daemon implements a webserver that listens on the specified
82.IR port .
83The web server publishes one or more
84.I services
85that will be displayed in a VT100 emulator implemented as an AJAX web
86application. By default, the port is 4200 and the default service URL is
87.IR http://localhost:4200/ .
88.P
89If no particular
90.I service
91was requested, the server launches
92.B /bin/login
93querying the user for their username and password. It then starts the
94user's default login shell.
95.P
96Any modern JavaScript and CSS enabled browser will be able to access the
97published
98.I service
99without requiring additional plugins.
100.SH OPTIONS
101The following command line parameters control the operation of the daemon:
102.TP \w'\-b\ |\ 'u
103\fB-b\fP\ | \fB--background\fP[\fB=\fP\fIpidfile\fP]
104Launch
105.B shellinaboxd
106as a background daemon process. Optionally, write the process id to
107.IR pidfile .
2809cd15 108#ifdef HAVE_OPENSSL
7460295f 109.TP
d9b6bc27 110\fB-c\fP\ |\ \fB--cert=\fP\fIcertdir\fP
7460295f
MG
111If built with SSL/TLS support enabled, the daemon will look in
112.I certdir
113for any certificates. If unspecified, this defaults to the current
114working directory.
115
116If the browser negotiated a
117.B Server Name Identification
118the daemon will look for a matching
119.I certificate-\f[BI]SERVERNAME\fP.pem
120file. This allows for virtual hosting of multiple server names on the
121same IP address and port.
122
123If no
124.B SNI
125handshake took place, it falls back on using the certificate in the
126.I certificate.pem
127file.
128
129The administrator should make sure that there are matching
130certificates for each of the virtual hosts on this server, and that
131there is a generic
132.I certificate.pem
133file.
134
135If no suitable certificate is installed,
136.B shellinaboxd
137will attempt to invoke
138.B /usr/bin/openssl
139and create a new self-signed certificate. This only succeeds if, after
140dropping privileges,
141.B shell\%ina\%boxd
142has write permissions for
143.IR certdir .
144
145Most browsers show a warning message when encountering a self-signed
146certificate and then allow the user the option of accepting the
147certificate. Due to this usability problem, and due to the perceived
148security implications, the use of auto-generated self-signed
149certificates is intended for testing or in intranet deployments, only.
150.TP
dc6575f2
MG
151\fB--cert-fd=\fP\fIfd\fP
152Instead of providing a
153.B --cert
154directory, it is also possible to provide a filedescriptor
155.I fd
156where the certificate and key can be retrieved. While this option disables
157.B SNI
158support, it does offer an alternative solution for securely providing
159the private key data to the daemon.
2809cd15 160#endif
dc6575f2 161.TP
1f771613
MG
162\fB--css=\fP\fIfilename\fP
163Sometimes, it is not necessary to replace the entire style sheet using the
164.B --static-file
165option. But instead a small incremental change should be made to the visual
166appearance of the terminal. The
167.B --css
168option provides a means to append additional style rules to the end of
169the default
170.B styles.css
171sheet. More than one
172.B --css
173option can be given on the same command line.
174.TP
d1edcc0e
MG
175\fB--cgi\fP[\fB=\fP\fIportrange\fP]
176Instead of running
177.B shellinaboxd
178as a permanent process, it can be demand-loaded as a CGI web server
179extension. When doing so, it will spawn a server that lives for the
180duration of the user's session. If an optional
181.I portrange
182of the form
183.BR MINPORT-MAXPORT
184has been provided, the server limits itself to these port numbers. They
185should be configured to pass through the firewall.
186
187The
188.B --cgi
189option is mutually exclusive with the
190.B --background
191and
192.B --port
193options.
194
195In order to be useful as a CGI script, the
196.B shellinaboxd
197binary probably will have to be made
198.BR setuid-root .
199This is currently a discouraged configuration. Use with care.
200.TP
7460295f 201\fB-d\fP\ |\ \fB--debug\fP
d9b6bc27 202Enables debugging mode, resulting in lots of log messages on
7460295f
MG
203.IR stderr .
204This option is mutually exclusive with
205.B --quiet
206and
207.BR --verbose .
208.TP
209\fB-f\fP\ |\ \fB--static-file=\fP\fIurl\fP:\fIfile\fP
210The daemon serves various built-in resources from URLs underneath the
211.I service
212mount points. One or more
213.B --static-file
214options allow for overriding these resources with customized externally
215provided
216.IR files .
217The
218.I url
219can either be an absolute or a relative path. In the former case, it overrides
220exactly one built-in resource for one specific
221.IR service ,
222whereas in the latter case it overrides resources for each defined
223.IR service .
224
225The following resources are available for customization:
226.RS
227.TP \w'ShellInABox.js\ \ \ 'u
228.B beep.wav
229audio sample that gets played whenever the terminal BEL is sounded.
230.TP
231.B favicon.ico
232favicon image file that is displayed in the browser's navigation bar.
233.TP
234.B ShellInABox.js
235JavaScript file implementing the AJAX terminal emulator.
236.TP
237.B styles.css
238CSS style file that controls the visual appearance of the terminal.
239.P
240It is not recommended to override the root HTML page for a particular
241.IR service .
242Instead, move the service to an anonymous URL and serve a
243.I static-file
244that references the
245.I service
246in an
247.IR <iframe> .
248
249Instead of a
250.IR file ,
251it is possible to provide the name of a directory. This turns
252.B shellinaboxd
253into a simple web server that publishes all of the files in that
254particular directory. This option can be helpful when publishing a more
255complex root HTML page.
256.RE
257.TP
258\fB-g\fP\ |\ \fB--group=\fP\fIgid\fP
259When started as
260.BR root ,
261the server drops most privileges at start up. Unless overridden by the
262.B --group
263option, it switches to
264.BR nogroup .
265
d1edcc0e
MG
266When already running as an unprivileged user, group changes are not
267possible.
7460295f
MG
268
269If running with SSL/TLS support enabled, the certificates must be
270accessible to the unprivileged user and/or group that the daemon
271runs as.
272.TP
273\fB-h\fP\ |\ \fB--help\fP
274Display a brief usage message showing the valid command line parameters.
275.TP
f0c6fd39
MG
276\fB--linkify\fP=[\fBnone\fP|\fBnormal\fP|\fBaggressive\fP]
277the daemon attempts to recognize URLs in the terminal output and makes them
278clickable. This is not neccessarily a fool-proof process and both false
279negatives and false positives are possible. By default, only URLs starting
280with a well known protocol of
281.BR http:// ,\ https:// ,\ ftp:// ,\ or\ mailto:
282are recognized. In
283.B aggressive
284mode, anything that looks like a hostname, URL or e-mail address is
285recognized, even if not preceded by a protocol.
286.TP
5ba94b37
MG
287\fB--localhost-only\fP
288Normally,
289.B shellinaboxd
290listens on all available network interfaces. When operating behind a
291reverse-proxy that is not always desirable. This command line option
292tells the daemon to only listen on the loopback interface.
293.TP
46f2036a
MG
294\fB--no-beep\fP
295not only are audible signals undesired in some working environments, but
296browser support for media playback is often buggy, too. Setting this option
297suppresses all audio playback and enables the visual bell by default.
298.TP
7460295f
MG
299\fB-n\fP\ |\ \fB--numeric\fP
300When running in
301.B --verbose
302mode, the daemon prints an
303.IR Apache -style
304log file to
305.IR stderr .
306By default, host names of peers get resolved
307before logging them. As DNS look-ups can be expensive, it is possible
308to request logging of numeric IP addresses, instead.
309.TP
310\fB-p\fP\ |\ \fB--port=\fP\fIport\fP
311Unless overridden by this option, the web server listens on port 4200
312for incoming HTTP and HTTPS requests.
313
314.B shellinaboxd
315can distinguish between SSL/TLS requests and unencrypted requests. It
316also knows how to negotiate
317.B Server Name
318.BR Identification ,
319allowing the use of a single port for all types of requests even when
320virtual hosting.
321.TP
322\fB-s\fP\ |\ \fB--service=\fP\fIservice\fP
323One or more services can be registered on different URL paths:
324.in +4
2809cd15 325\fISERVICE\fP := <url-path> ':' \fIAPPLICATION\fP
7460295f 326.in
2809cd15
MG
327
328There is a pre-defined \fIapplication\fP, 'LOGIN', which causes the
7460295f
MG
329daemon to invoke
330.B /bin/login
2809cd15
MG
331requesting the user's name and password, and starting his
332login shell. This is the default option for the
333.B root
334user, if no
7460295f
MG
335.B --service
336was defined. Starting
337.B /bin/login
338requires
339.B root
340privileges.
341
2809cd15
MG
342There is another pre-defined \fIapplication\fP, 'SSH'. Instead of invoking
343.BR /bin/login ,
344it calls
345.BR ssh .
346This is the default option for unprivileged users, if no
347.B --service
348was defined. This operation is available to both privileged and regular
349users. If the optional \fIhost\fP parameter is omitted,
350.B shellinaboxd
351connects to
352.BR localhost .
353
7460295f
MG
354Alternatively, an \fIapplication\fP can be specified by providing a
355\fIuser\fP description, a working directory, and a command line:
356.in +4
2809cd15 357\fIAPPLICATION\fP := 'LOGIN' | 'SSH' [ ':' <host> ] | \fIUSER\fP ':' \fICWD\fP ':' <cmdline>
7460295f 358
bf1ec4d2
MG
359#ifdef HAVE_PAM
360.in
7460295f
MG
361The keyword 'AUTH' indicates that the \fIuser\fP information should
362be requested interactively, instead of being provided as part of the
363\fIservice\fP description:
364.in +4
bf1ec4d2 365#endif
bf1ec4d2 366#ifdef HAVE_PAM
2809cd15
MG
367\fIUSER\fP := 'AUTH' |
368#endif
369#ifndef HAVE_PAM
370\fIUSER\fP :=
bf1ec4d2
MG
371#endif
372<username> ':' <groupname>
7460295f
MG
373.in
374
375The working directory can either be given as an absolute path, or it
376can be the user's home directory:
377.in +4
378\fICWD\fP := 'HOME' : <dir>
379.in
380
381The <cmdline> supports expansion of variables of the form ${VAR}.
382Supported variables are:
383.RS
384.TP \w'${columns}\ \ 'u
385.B ${columns}
386number of columns.
387.TP
388.B ${gid}
389numeric group id.
390.TP
391.B ${group}
392group name.
393.TP
394.B ${home}
395home directory.
396.TP
397.B ${lines}
398number of rows.
399.TP
400.B ${peer}
401name of remote peer.
402.TP
403.B ${uid}
404numeric user id.
405.TP
406.B ${user}
407user name.
408.P
409Other than the default environment variables of
410.BR $TERM ,
411.B $COLUMNS
412and
413.BR $LINES ,
414services can have environment variables passed to them, by preceding
415the <cmdline> with space separated variable assignments of the form
416.IR KEY = VALUE .
417
418The <cmdline> supports single and double quotes, as well as
419backslashes for escaping characters in the familiar fashion.
420
421Please note that when invoking
422.B shellinaboxd
423from a command line shell, additional quoting might be required to
424prevent the shell from expanding the variables prior to passing them
425to the daemon.
426
427If no explicit
428.B --service
429has been requested,
430.B shellinaboxd
2809cd15
MG
431defaults to attaching the default service to the root directory of the web
432server. For
433.BR root ,
434this is
435.BR /bin/login ,
436and for unprivileged users, this is \fBssh localhost\fP. This is equivalent
437to saying
438.BR --service=/:LOGIN ,
439or
440.BR --service=/:SSH ,
441respectively.
7460295f 442.RE
2809cd15 443#ifdef HAVE_OPENSSL
7460295f
MG
444.TP
445\fB-t\fP\ |\ \fB--disable-ssl\fP
446By default,
447.B shellinaboxd
448redirectes all incoming HTTP requests to their equivalent HTTPS
449URLs. If promoting of connections to encrypted SSL/TLS sessions is
450undesired, this behavior can be disabled.
451
452This option is also useful during testing or for deployment in trusted
453intranets, if SSL certificates are unavailable.
2809cd15 454#endif
7460295f 455.TP
b624088c
MG
456\fB--disable-ssl-menu\fP
457If the user should not be able to switch between HTTP and HTTPS modes, this
458choice can be removed from the context menu. The user can still make this
459choice by directly going to the appropriate URL.
460.TP
7460295f
MG
461\fB-q\fP\ |\ \fB--quiet\fP
462Surpresses all messages to
d9b6bc27 463.IR stderr .
7460295f
MG
464This option is mutually exclusive with
465.B --debug
466and
467.BR --verbose .
468.TP
469\fB-u\fP\ |\ \fB--user=\fP\fIuid\fP
470If started as
471.BR root ,
472the server drops privileges by changing to
473.BR nobody ,
474unless the
475.I uid
476has been overridden by this option.
477
478For more details, refer to the description of the
479.B --group
480option.
481.TP
482\fB-v\fP\ |\ \fB--verbose\fP
483Enables logging of
484.IR Apache -style
485log file to
486.IR stderr .
487This option is mutually exclusive with
488.B --debug
489and
490.BR --quiet .
491.TP
492\fB--version\fP
493Prints the version number of the binary and exits.
494.SH CONFIGURATION
495There are no configuration files or permanent settings for
496.BR shell\%ina\%boxd .
497A small number of run-time configuration options are available from a
498context menu that becomes available when clicking the right mouse button.
499.SH EXAMPLES
500.TP \w'shellinaboxd\ 'u
3fa8757a
MG
501.B shellinaboxd
502Attaches a web-enabled login shell to
503.IR https://localhost:4200/ .
504If the user connected without SSL, the session will automatically be promoted.
505Unless SSL certificates can be found in the current directory, the daemon will
506automatically generate suitable self-signed certificates. If the command was
507invoked by a non-\fBroot\fP user, the daemon uses
508.B ssh
509instead of
510.B /bin/login
511for the session.
512.TP
7460295f
MG
513.B shellinaboxd -t
514Attaches a web-enabled login shell to
515.I http://localhost:4200/
3fa8757a 516with SSL/TLS support disabled.
7460295f
MG
517.TP
518.B shellinaboxd -t -f beep.wav:/dev/null
519Runs all services with the audible-bell permanently disabled.
520.TP
521.B shellinaboxd -t -s /:AUTH:HOME:/bin/bash
522Interactively request the user's name and password prior to launching
523a Bourne shell. This command can be run by unprivileged users. But if
524doing so, it only allows this particular user to log in.
525.TP
65f7545e 526.B shellinaboxd -c certificates -u shellinabox -g shellinabox
7460295f
MG
527If the
528.B certificates
529directory exists and is writable by the
65f7545e
MG
530.B shellinabox
531user and group, self-signed SSL certificates will be generated in this
532directory. This might require creating an appropriately named user first.
533Running this command as
7460295f
MG
534.B root
535allows any user on the system to log in at
536.BR http://localhost:4200/ .
537Sessions will automatically be promoted to SSL/TLS.
538.TP
539.B shellinaboxd -t -s /:LOGIN -s /who:nobody:nogroup:/:w
540In addition to the login shell at
541.IR http://localhost:4200 ,
542show a list of currently logged in users when accessing
543.IR http://localhost:4200/who .
544This command must be run as
545.B root
546in order to be able to change to
547.B nobody:nogroup
548as requested by the service description.
549.TP
550.B shellinaboxd -t -s '/:root:root:/:wy60 -c /bin/login'
551Instead of the standard
552.B ANSI/VT100
553terminal, publish a
554.B Wyse 60\*(Tm
555terminal. Again, this command should be run as
556.BR root .
1f771613
MG
557.TP
558#ifndef DPKGBUILD
559.B shellinaboxd --css white-on-black.css
560#endif
561#ifdef DPKGBUILD
562.B shellinaboxd --css /usr/share/doc/shellinabox/white-on-black.css
563#endif
564Loads the
565.B white-on-black.css
566style sheet
567#ifndef DPKGBUILD
568from the current directory
569#endif
570and appends it to the built-in
571.B styles.css
572sheet. This causes the terminal to render white text on a black background.
7460295f
MG
573.P
574.SH DIAGNOSTICS
575The daemon returns a non-zero exit code in case of failure. With the
576exception of a small number of common error cases that are handled
577explicitly, most errors result in printing a
578.I \(dqCheck failed\(dq
579message. This does not typically indicate a bug in the program but is
580instead its normal way of reporting errors.
581
582Common failure conditions are reusing a port that is already in use,
583lack of sufficient privileges to run a service, failure to find
584SSL/TLS certificates, and failure to write newly generated
585certificates to the certification directory.
1f771613
MG
586#ifdef DPKGBUILD
587.SH FILES
588.TP 10
589.I /etc/default/shellinabox
590The system-wide installation of
591.B shellinaboxd
592can be configured by editing this file. After making any changes, restart
593the daemon with \fBsudo service shellinabox restart\fP.
594.TP
595.I /etc/init.d/shellinabox
596This is the system-wide service definition. Usually, there is no need to
597edit this file.
598.TP
599.I /var/lib/shellinabox
600This directory contains the certificate files that
601.B shellinaboxd
602uses when serving encrypted SSL sessions. If suitable files do not exist, yet,
603it tries to populate the directory with self-signed certificates the first
604time a particular certificate is needed. Over time, it should contain
605\fBcertificate.pem\fP, \fBcertificate-localhost.pem\fP, and
606\fBcertificate-\fP\fIHOSTNAME\fP\fB.pem\fP.
607.TP
608.I /var/run/shellinaboxd.pid
609This file is created any time the system-wide service gets started.
610#endif
7460295f
MG
611.SH "SEE ALSO"
612.BR chmod (1),
613.BR last (1),
614.BR login (1),
615.BR sh (1),
616.BR shells (5),
617.BR openssl (1SSL),
618.BR w (1),
619.BR wy60 (1),
620.BR xterm (1).
621.SH SECURITY
622The daemon uses privilege separation techniques to allow it to drop
623privileges early. It is aware of setuid flags and restricts some
624operations when launched as a setuid application.
625
626Despite these safety features, a bug could conceivably lead to a
627determined attacker gaining elevated privileges. It is therefore
628strongly discouraged to set the setuid flag on the binary.
629
630The expected deployment would be from a system
631.I rc
632script launched by
633.BR /sbin/init .
634For extra security, the
635.B --group
636and
637.B --user
638options should be used to change to a dedicated user.
639.SH AUTHOR
e0bb8a33 640Copyright (C) 2008-2009 by Markus Gutschke
7460295f
MG
641.RI < "markus@shellinabox.com" >.
642.P
643This program is free software; you can redistribute it and/or modify
644it under the terms of the GNU General Public License version 2 as
645published by the Free Software Foundation.
646.P
647This program is distributed in the hope that it will be useful,
648but WITHOUT ANY WARRANTY; without even the implied warranty of
649MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
650GNU General Public License for more details.
651.P
652You should have received a copy of the GNU General Public License
653along with this program; if not, write to the Free Software
654Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
655USA
656.P
657In addition to these license terms, the author grants the following
658additional rights:
659.P
660If you modify this program, or any covered work, by linking or
661combining it with the OpenSSL project's OpenSSL library (or a
662modified version of that library), containing parts covered by the
663terms of the OpenSSL or SSLeay licenses, the author
664grants you additional permission to convey the resulting work.
665Corresponding Source for a non-source form of such a combination
666shall include the source code for the parts of OpenSSL used as well
667as that of the covered work.
668.P
669You may at your option choose to remove this additional permission from
670the work, or from any part of it.
671.P
672If you would like to negotiate different licensing terms that are
673compatible for integration with other projects, please contact the
674author.
675#ifdef HAVE_OPENSSL
676.P
677If the OpenSSL
678system libraries can be found at run-time, they will be invoked by
679.B shellinaboxd
680to provide SSL/TLS support. The OpenSSL and SSLeay
681licenses require the following notices:
682.P
683This product includes software developed by the OpenSSL Project
684for use in the OpenSSL Toolkit. (http://www.openssl.org/)
685.P
686This product includes cryptographic software written by Eric Young
687(eay@cryptsoft.com)
688#endif
689.SH BUGS
690Due to browser limitations, some features might not be available to
691users of all browers.
692.P
693Konqueror does not allow for reliable interception of
694.I CTRL
695keys. If you press a key together with the
696.I CTRL
697modifier, it continues performing the browser's predefined behavior for
698this particular key combination. In most cases, it also fails to report
699the correct key to the terminal emulator. As a work-around, pressing
700both the
701.I CTRL
702and the
703.I WINDOWS
704key sometimes works.
705.P
706Some browsers, most notably IE on Windows, disallow interception of
707.I ALT
708keys and always interpret these keys as menu accelerators. As a
709work-around, many UNIX applications allow pressing
710.IR ESC ,
711instead of
712.IR ALT .
713.P
714When using non-US keyboard layouts, some browser do not allow for
715reliably determining shifted
716.I ALT
717keys. Please report these cases if they turn out to be a problem, as
718work-arounds might be possible.
719.P
720Access to the native clipboard is typically not possible. Instead, an
721internal clipboard accessible from the right-button context menu is used
722for all but IE.
723.P
724Some browsers restrict the number of concurrent connections to a
725server. This restricts how many AJAX terminals can be opened
726simultaneously. If this becomes a problem, users can typically
727reconfigure their browsers to raise the limit.
46f2036a
MG
728.P
729There have been reports of the VLC plugin on Linux/x86_64 crashing Firefox
730when the browser page gets reloaded. Setting the
731.B --no-beep
732option eliminates all references to VLC and thus appears to work around
733this crash.
This page took 0.148202 seconds and 5 git commands to generate.