1anytermd(1) anytermd(1)
2
3
4
6 anytermd - A terminal-emulating HTTP daemon
7
9 anytermd [--command arg] [--device arg] [--baudrate arg] [--port arg]
10 [--user arg] [--auth arg] [--charset arg] [--foreground] [--diff]
11 [--nodiff] [--max-sessions arg] [--max-http-connections arg]
12 [--local-only] [--name arg]
13
14 anytermd --help
15
17 Anyterm provides a terminal window on a web page, so you can run com‐
18 mand-line programs on a machine even when the only access to it is over
19 HTTP.
20
21 Anyterm consists of some Javascript on a web page, an XmlHttpRequest
22 channel on standard ports back to the server, an HTTP proxy such as
23 Apache's mod_proxy and the Anyterm daemon. The daemon, anytermd, uses a
24 pseudo-terminal to communicate with a shell or other application, and
25 includes terminal emulation. Key presses are picked up by the Javscript
26 which sends them to the daemon; changes to the emulated screen are sent
27 from the daemon to the Javascript which updates its display. Perfor‐
28 mance is quite reasonable and SSL can be used to secure the connection.
29 For security reasons, it is highly recommended that anytermd NOT be
30 exposed directly to the Internet! See the section SECURITY below.
31
33 Default values are indicated in parentheses ().
34
35 -c | --command arg (=/bin/bash)
36 Command to run in terminal
37
38 -d | --device arg
39 Device to connect to (e.g. serial port)
40
41 -b | --baudrate arg
42 Baud rate for serial port device (=9600)
43
44 -p | --port arg (=8080)
45 Port number to listen on
46
47 -u | --user arg
48 User to run as
49
50 -a | --auth arg (=none)
51 Authorisation: none|null|trivial
52
53 -s | --charset arg (=ascii)
54 Character set
55
56 -f | --foreground
57 run in foreground
58
59 --diff Send only differences to browser
60
61 -n | --nodiff
62 Send whole screen to browser each time
63
64 -m | --max-sessions arg (=20)
65 Maximum number of simultaneous sessions
66
67 --max-http-connections arg (=25)
68 Maximum number of simultaneous HTTP connections
69
70 --local-only
71 Accept connections only from localhost
72
73 --name arg (=anyterm)
74 Name used for logging and pid file
75
76 --help show help message
77
79 Do not run anytermd as root.
80
81 Anyterm's code has not been audited for security. It is almost cer‐
82 tainly possible to cause it to crash by sending it invalid input, and
83 experience suggests that this sort of weakness can also be exploited to
84 allow arbitary code execution.
85
86 Note that all CGI applications and similar programs are subject to this
87 sort of problem, though some are better written than others. The
88 Anyterm code does not need run with a higher priviledge level than any
89 other web application, so weaknesses in Anyterm do not put your system
90 at any higher risk than weaknesses in any other web application would.
91
92 Avoid exposing anytermd directly to the Internet.
93
94 anytermd should be used only as a backend service, reachable only via a
95 frontend HTTPS proxy, such as Apache, that requires authentication.
96 http://anyterm.org/1.1/install.html gives examples of how to set this
97 up.
98
99 A more complete and up-to-date discussion of security issues in
100 anytermd can be found at http://anyterm.org/security.html.
101
103 If you just want to test Anyterm, you can do:
104
105 anytermd --local-only
106
107 and then connect to http://localhost:8080 with your Javascript-enabled
108 web browser. The brower should display a terminal window containing a
109 bash command prompt owned by the user who started anytermd.
110
111 If you want to set up SSH-over-HTTP access on localhost:8022, you might
112 run it as:
113
114 anytermd --command "/usr/bin/ssh -o your-username@localhost" --port
115 8022 --user nobody --charset utf-8 --local-only
116
118 Anyterm is more fully documented on its web site, http://anyterm.org/.
119 The web site may be more up-to-date than this man page.
120
122 Anyterm is written by Phil Endecott. This man page was contributed by
123 Eric Rossen.
124
125
126
127Phil Endecott 1.1.something anytermd(1)