Poster of Linux kernelThe best gift for a Linux geek


Section: Maintenance Commands (8)
Local index Up


eftd - ISDN EUROFILE file transfer server  


As this is alpha test software, options might change with each release!

eftd [-a [ACCESS_FILE]] [-IlsV?] [-d LEVEL] [-D MASK] [-b LOGFILE] [-l LEVEL] [-L MASK] [-U FALLBACK_USER_ID] [-x ADDR]



eftd eftd allows clients to connect to your machine via the ISDN and to transfer files by means of the EUROFILE transfer protocol. That protocol is specified by ETSI norms ETS 300-075 and ETS 300-383.

Unless the -s option is given, the server loops forever waiting for incoming connections and forks a child process for each connection received.



Expects a string argument interpreted as a file name. If eftd is compiled with the CONFIG_EFTD_WUAUTH option, eftd reads ACCESS_FILE and uses the contents for user authentication similarly to wu-ftpd's ftpaccess file. See eftaccess(5) for further details.

Expects a string argument interpreted as a file        name.
Communication events selected by the -l or -L option are logged (appended) to the file specified by the option's argument. (This is the 'LogBook' file in terms of ETS 300 383, thus the 'b'). If this option is omitted, a system dependent default (i.e. /var/log/eftd.log) is used. Opening of the LogBook file can be supressed simply by not suppling any -l or -L option.

Expects an integer argument which is interpreted as a log level. Protocol or internal events up to the level are logged to stderr.

For levels 0 - 3, see the -l option.

Higher values include more events in the log, such as low level protocol and call traces and temporarily inserted debugging output statements.

Use of -d as well as level > 3 is primarily intended for debugging purpose. This also implies that the output caused by log levels > 3 is not documented and likely to change between releases.

The bitmask argument allows for low level grained control of stderr output. It overrides previous -I and augments -d options. For maximum amount of debugging output use "-D -1". As this is really intended to be used for low level debugging, examine the eftp4linux sources (start by reading the source file src/lib/tdu_user.h) if you really want to use this option on your own.

Logs the contents of /dev/isdnctrl to stderr. For this to work, other processes reading /dev/isdnctrl (i.e. isdnlog) should be stopped before). This option is intended for debugging purpose only.

The integer argument specifies the log level for selecting the events written to the LogBook file (as specified by the -b option). Levels are

0 No events at all.

1 Important events related to session start and end (login and logout)

2 Important events during each session. Also adds some events related session start/stop of minor priority.

3 Other minor priority events.

>3 Low level events. As these are primarily useful for debugging purpose, it's probably better (but not strictly necessary) to log them by means of the -d option. See the latter for more info.

this log feature is currently new, extremly unfinished, incomplete and subject to improvements (volunteers welcome) and not my highest priority item. Thus, don't expect the current format of the messages to be fixed forever.

Conceptually similar to -D (see the latter). Allows fine grained control for selecting the events logged to the LogBook (-b) file.

The string type argument should consist of up to 15 digits which specify the X.25 [X.121/X.301] address the servers listens on for incoming connections. As EUROFILE is usually used with ISO-8208 X.25 DTE-DTE mode, you should use the empty string as argument here, which is the default. Thus, it is extremely unlikely that you want to use this option at all.

This option can be given two times, allowing the server to listen on two different x25 addresses simultaneously.

Single process mode. If this option is given, the server just serves the first incoming connection and exits when the session is finished. It does not fork a child process for serving that connection.

This is mainly useful for running eftd under the control of a debugger (such as gdb). If you want to debug eftd like this, also make sure that the '-m' option is not set. (As the -m option forks an additional supervisor process, -s alone will not result in a debuggable single process eftd). Further, as the single process will not run under root permissions any longer after an EUROFile connection has been accepted, eftd can not clear isdn connections on its own, you may need to do so yourself.

Multiple connection mode. If this option is given, the server immidiately continues to accept new connections without waiting for the just accepted session to finish. The number of simultaneous served connections is not internally limited by the server. However, upper limits might be imposed by the mumber of physically available isdn B-channels, the number of running incoming isdn network interfaces configured with "encap x25iface", or by the authentification procedure (i.e. group limits configured in /etc/isdn/eftaccess).

When multi mode is activated, the server forks an extra privileged supervisor process for each accepted connections which takes care of clearing the isdn connection after the session is finished. Thus, if N EURFILE sessions are active, there will be 2N+1 eftd processes.

When this option is specified, a login attempt with a user name not in the passwd database will be using USER as the login name (with empty password).

You might use '-U ftp' if you have configured anonymous access and want that unknown user ids should be handled as an anonymous eft access. Unknown user ids frequently occur as many clients insert some dummy user name in the t_associate request if no user name was configured.

Prints version.

prints usage message.



The server supports most of the EUROFILE primitives, including navigation and extended directory format. However, T-RENAME, T-DELETE, and LIST are not supported yet.

If eftd is compiled with the CONFIG_EFTD_WUAUTH option, user access is granted using an authentication procedure derived from wu-ftpd, the Washington University ftp server. Refer to the eft_wuauth man page for further details.

Transfers can be logged to /var/log/eft_xferlog. The format of this file is compatible with the wu-ftpd xferlog format. Refer to the eft_xferlog man page for details. Also see event logging below.

eftd can also be invoked (and then stopped) by means of the /etc/init.d/isdneurofile shell script:

        /etc/init.d/isdneurofile start|stop

This script reads configuration parameters (usually from /etc/isdn/eft.conf). You might want to edit this file before starting it.

Besides starting eftd, the script also takes care of setting up the necessary isdn network interfaces. The script can be used by sysvinit to automatically start eft service as part of the system boot precedure. (But make sure it is called after isdn and x25 modules are loaded).



The EUROFILE protocol identifies files to be transferred by means of a so called `transfer name'. According to ETS 300-383/ETS 300-075, a transfer name may constist up to 8 keywords separated by the '/' character. Each keyword may constist of up to 12 printable (between 0x21 and 0x7e) ascii characters except '(', ')', '*', bytes.

The transfer names generated by eftd (and which will be displayed in response to a T-Directory request) will always conform to this.

eftd will also accept transfer names within incoming request (T-Load and T-Save request) that do not conform to the standards. If a transfer name in an incoming request is valid, it is processed by a mapping procedure which resolves to a file name. Transfer names not conforming to the standard are not subject to mapping. They are treated literally as POSIX filenames.



eftd maps transfer names to file names by means of two different methods. If the current working directory is writable by the user, a database is used that maps between transfer names and file names.

The database is currently implemented by means of symlinks which are created in the working directory. Symlinks matching .++eft_fn.TRANSFER_NAME contain the file name corresponding to TRANSFER_NAME. Symlinks matching .++eft_tn.FILE_NAME contain the transfer name name corresponding to FILE_NAME. You can clean tha database by just removing all those symlinks (rm .++eft_[ft]n.*).

If the directory is not writable by the user, an algorithm based ob the file/transfer name and the file's inode number is used to map between transfer names and file names.



eftd provides for two event logging channels. The first is always stderr, the other is the so called LogBook file (an ETS 300 383 term) (which might be altered by means of the -b option)

The amount of events logged can be controlled by a log level, which may be supplied by means of the -d (for stderr channel) or the -l (for LogBook file channel). An even finer grained (but even less portable) control is possible by means of bitmask arguments supplied with the -D or -L option.

For debugging purpose, it is somtimes helpful to write the standard error messages syncronized with the logged events into the same stream. Thus, for generating debugging logs, it is preferable to use the stderr channel. For debugging certain very low (i.e. Linux kernel) level protocol problems, it is even desirable to write the isdn events (as read from /dev/isdnctrl) to the same stream. eftd provides for a -I option to achieve this goal as close as possible (however, synchronity cannot be granted here).

Wenn large log levels are used, huge amounts of stderr output will be generated. Thus you might consider to redirect stderr to a disk file in such a case.

Writing to a log file might block the eftd process, which might result in timing problems if the process is blocked for a very long (several seconds) time. Thus, it is not advisable to log events to files (i.e. located on unreliable NFS servers) which are likly to cause such blocking.



The majority of DOS/Windows based clients implicitly assume that file transfer names fulfil DOS file name conventions and don't distinguish between upper and lower case names. This is in violation to the ETSI norms and might cause inter-working problems. The server provides for a compatibility mode to inter-operate with such clients. In order to activate that compatibility mode, prepend a '+' character to the login name when connecting to the server. See the doc/INTERWOKING file for details.

If you intend to offer files for public download via eft, it is recommended to use file names that match DOS conventions only.


RESTRICTIONS (also called BUGS :-)

Renaming and deleting (T-RENAME, T-DELETE) of files is not supported yet. The S-LIST primitive (recursivly listing all directories) is not supported.

Compression is not supported. This is not a serious limitation nowadays because on-disk compression formats like [g]zip are widley available, compress better, and also save disk storage. When eftp has established the connection, it issues the "eftp>" prompt and waits for commands that will be read from standard input. Interactive input can be edited by means of the GNU readline library.



manpage written from usage text file by Paul Slootman <>.



RESTRICTIONS (also called BUGS :-)

This document was created by man2html, using the manual pages.
Time: 22:01:34 GMT, April 16, 2011