Technical Notes

Manpages - floppyd.1

Name

floppyd - floppy daemon for remote access to floppy drive

Note of warning

This manpage has been automatically generated from mtools's texinfo documentation, and may not be entirely accurate or complete. See the end of this man page for details.

Description

Floppyd is used as a server to grant access to the floppy drive to clients running on a remote machine, just as an X server grants access to the display to remote clients. It has the following syntax:

floppyd [=-d=] [=-l=] [=-s= port/] [=-r= /user/] [=-b= /ipaddr/] [=-x= /display/] /devicenames

floppyd is always associated with an X server. It runs on the same machine as its X server, and listens on port 5703 and above.

Authentication

floppyd authenticates remote clients using the Xauthority protocol. Xhost authentication is not supported. Each floppyd is associated with an X server. When a remote client attempts to connect to floppyd, it sends floppyd the X authority record corresponding to floppyd's X server. Floppyd in turn then tries to open up a connection to the X server in order to verify the authenticity of the xauth record. If the connection to the X server succeeds, the client is granted access. DISPLAY.

Caution: In order to make authentication work correctly, the local host should not be listed in the xhost list of allowed hosts. Indeed, hosts listed in xhost do not need a correct Xauthority cookie to connect to the X server. As floppyd runs on the same host as the X server, all its probe connection would succeed even for clients who supplied a bad cookie. This means that your floppy drive would be open to the world, i.e. a huge security hole. If your X server does not allow you to remove localhost:0 and :0 from the xhost list, you can prevent floppyd from probing those display names with the -l option.

Command line options

d
Daemon mode. Floppyd runs its own server loop. Do not supply this if you start floppyd from inetd.conf
=s =/port/
Port number for daemon mode. Default is 5703 + displaynumber. This flag implies daemon mode. For example, for display hitchhiker:5, the port would be 5708.
=b =/ipaddr/
Bind address (for multi homed hosts). This flag implies daemon mode
=r =/user/
Run the server under as the given user
=x =/display/
X display to use for authentication. By default, this is taken from the DISPLAY variable. If neither the x attribute is present nor DISPLAY is set, floppyd uses :0.0.

devicenames is a list of device nodes to be opened. Default is /dev/fd0. Multiple devices are only supported on mtools versions newer than 3.9.11.

Connecting to floppyd

In order to use floppyd, add the flag remote to the device description in your ∞~/.mtoolsrc∫ file. If the flag remote is given, the file parameter of the device description is taken to be a remote address. It's format is the following: hostname/=:=/displaynumber[=/=[/baseport/][=/=/drive/]]. When using this entry, mtools connects to port baseport/+/displaynumber at hostname. By default baseport is 5703. The drive parameter is to distinguish among multiple drives associated with a single display (only mtools versions more recent than 3.9.11)

Examples:

The following starts a floppy daemon giving access to ∞/dev/fd0∫, listening on the default port 5703, tied to the default X servers:

floppyd -d /dev/fd0

Each of the following starts a floppy daemon giving access to ∞/dev/fd1∫, tied to the :1 local X servers, and listening on port 5704. We assume that the local host is named hitchhiker.

floppyd -d /dev/fd0
floppyd -d -x :1 -p 5704 /dev/fd0

If you want to start floppyd by inetd instead of running it as a daemon, insert the following lines into ∞/etc/services∫:

# floppy daemon
floppyd-0    5703/tcp    # floppy daemon for X server :0
floppyd-1    5704/tcp    # floppy daemon for X server :1

And insert the following into ∞/etc/inetd.conf∫ (assuming that you have defined a user named floppy in your ∞/etc/passwd∫):

# floppy daemon
floppyd-0 stream  tcp  wait  floppy  /usr/sbin/floppyd floppyd /dev/fd0 
floppyd-1 stream  tcp  wait  floppy  /usr/sbin/floppyd floppyd -x :1 /dev/fd0

Note that you need to supply the X display names for the second floppyd. This is because the port is opened by inetd.conf, and hence floppyd cannot know its number to interfere the display number.

On the client side, insert the following into your ∞~/.mtoolsrc∫ to define a drive letter accessing floppy drive in your X terminal:

drive x: file="$DISPLAY" remote

If your X terminal has more than one drive, you may access the additional drives as follows:

drive y: file="$DISPLAY//1" remote
drive z: file="$DISPLAY//2" remote

See Also

Mtools' texinfo doc

Viewing the texi doc

This manpage has been automatically generated from mtools's texinfo documentation. However, this process is only approximative, and some items, such as crossreferences, footnotes and indices are lost in this translation process. Indeed, these items have no appropriate representation in the manpage format. Moreover, not all information has been translated into the manpage version. Thus I strongly advise you to use the original texinfo doc. See the end of this manpage for instructions how to view the texinfo doc.

*
To generate a printable copy from the texinfo doc, run the following commands:
    ./configure; make dvi; dvips mtools.dvi
*
To generate a html copy, run:
    ./configure; make html

A premade html can be found at ∞http://www.gnu.org/software/mtools/manual/mtools.html∫

*
To generate an info copy (browsable using emacs' info mode), run:
    ./configure; make info

The texinfo doc looks most pretty when printed or as html. Indeed, in the info version certain examples are difficult to read due to the quoting conventions used in info.