Provided by: isdneurofile_3.12.20071127-0ubuntu11_amd64 bug


       eftp - ISDN EUROFILE file transfer client


       eftp [ -i ISDN_NO ] [ -x X25_ADDRESS ] [ -u USER[/PASSWORD] ] [-p] [-h]


       eftp  is  a  simple  EUROFILE  transfer  client with a command line user interface roughly
       resembling the ftp client.

       Novice users are initially recommended to invoke eftp as

            eftp -i ISDN_NO -u USER


       -i ISDN_NO
              ISDN number of the remote EUROFILE server to connect to.  The client  will  try  to
              set  up  an isdn connection to this number and an X.25 DTE-DTE connection on top of

       -x X25_ADDRESS
              directly specify the X.25 address used for setting up the X.25 connection. For eftp
              to  work,  an  X.25  route for that address must already be present. The X.25 route
              must point to an isdn4linux network  interface  that  is  configured  for  outgoing
              connections  to  a  destination EUROFILE server. The encapsulation of the interface
              must be "x25iface", l2_prot must be x75i.

              If neither -i nor -x option is specified, the behavior is like an empty  string  -x
              option ( as if called like  "eftp -x ''" )

       -u USER[/PASSWORD]
              The  user identity used to login to the remote EUROFILE server. The password can be
              appended to the user id seperated by a '/' character. If no '/' is present  in  the
              parameter of the -u option, eftp will prompt for a password.

              Entering the password on the command line allows other users to spoof the password,
              e.g. by means of the ps command. The password might also leave other  traces,  e.g.
              in  your shell's history file. Thus, DON'T include the passwd in the -u argument on
              machines where this is a concern (e.g. when untrusted users have shell accounts  on
              the machine).

              If  the  -u option is missing, the client will try to login without a user id (some
              servers will treat this as anonymous access).

       -p     suppress prompting for a password even if the argument to the -u  option  does  not
              contain  a  password.  This  is  useful  for  accounts  on EUROFILE servers without
              password protection.

       -h     print a help message to stdout.


       If invoked with the -i option, eftp will try its best to create and  set  up  all  related
       isdn interfaces automatically and to remove them after the end of the session. In order to
       undo the setup after the end of the session reliably (i.e.  even  when  the  eftp  process
       crashes), eftp forks a child process which is in charge of processing the eurofile session
       while taking care itself only for supervising the isdn connection setup  and  undoing  all
       temporary isdn configurations after the child exits.

       However,  the  control  and  configuration of isdn connections requires certain privileges
       (netadmin capability, write access to /dev/isdnctrl;  debian  users  need  to  be  in  the
       "dialout" group).

       To  overcome  this  problem,  eftp  now  has special support to execute suid root. To take
       advantage of this, make root the owner of the eftp binary and set the suid bit.   This  is
       not done as standard in the debian package because it is better to put authorized users in
       the dialout group.

       WARNING/DISCLAIMER: suid programs are inherently dangerous because potential bugs  in  the
       programme,  the kernel or standard libraries might be exploitable to gain root priviliges.
       If this is a concern, don't install eftp suid root. If installed suid root, also  consider
       to clear the world executable bit of the eftp binary and to change its group to a group of
       trusted users who are allowed to execute the setuid eftp programme.

       eftp will change the uid of the forked child process (which is in charge of  the  protocol
       procession)  to the (less priviliged) real user id of the caller as soon as possible. Only
       the parent process, which does  not  interact  with  the  user  directly  and  needs  more
       priviliges  in  order  to  clean  up  the isdn setup, continues to run suid root. The real
       userid of the parent will be switched to the effective userid (root).

       A suid root eftp will not allow all users to set up eurofile isdn connections. eftp checks
       whether the user has write permissions for the /dev/ttyI0 special file. Only if this check
       is passed, the isdn connection will be set up. This algorithm ensures that only users, who
       are already permitted to set up isdn connections by other means (by writing AT commands to
       /dev/ttyI0), can set up isdn connections for eurofile.


       When eftp has established the connection, it issues  the  "eftp>"  prompt  and  waits  for
       commands  that  will  be  read  from  standard  input.   If configured before compilation,
       interactive input can be edited by means of the GNU readline library.

       The following commands are recognised:

       Commands for Listing and Transferring Files

       dir [PATTERN]

              This corresponds to ETS 300-075 and ETS 300-383 T-DIRECTORY primitive. It prints  a
              list  of  files  contained  in  the  current  working  directory (ETSI calls it the
              "current filestore").  PATTERN is a pattern as defined in ETS 300-075 and selects a
              subset of those files to be displayed. ETS 300-075 pattern are different from shell
              wildcard or regular expressions, but the pattern "*" matches all filenames as you'd
              expect.  I  won't  explain  further  pattern  rules here because most servers don't
              recognise any patterns different from "*" anyway.

              If pattern is omitted, the * pattern is assumed.

              Pattern applies  to  the  EUROFILE  transfer  name  of  the  files,  which  is  not
              necessarily identical to the filename itself.

              Likewise,  the output of the  command does not list the filenames, but the transfer
              names of the files and the file length. Note that only regular  files  are  listed.
              For listing subdirectories, there are the list and slist commands.

       xdir [PATTERN]

              This  is similar to the dir command but requests the directory contents in extended
              format. In addition to the transfer name, this will also contain the real  name  of
              the file and the time stamp of the last write access.

              Note  that not all servers support directory requests with extended format. Some of
              those servers will respond with a  normal  directory  contents  file,  others  will
              reject  the  request. In the former case, eftp will issue a warning message and use
              the transfer name for the file name and use 1970-01-01 as  the  last  access  date.
              (The eftp4linux server supports extended directory formats).


              This  corresponds  to  the   300-075  T-LOAD  primitive  and tries to load the file
              identified by TRANSFER_NAME from the remote server  and  stores  it  locally  using
              PATH_NAME  as  the destination. If PATH_NAME is omitted, TRANSFER_NAME is also used
              as the destination name.


              This corresponds to the ETS 300-075 T-SAVE primitive and tries to upload the  local
              file  identified  by  PATH_NAME  to  the  remote server, using TRANSFER_NAME as the
              destination.  If PATH_NAME is omitted, TRANSFER_NAME is also used  as  to  identify
              the local file.

       mget PATTERN

              get  multiple  files  whose  transfer  names  match PATTERN. PATTERN is (currently)
              interpreted a shell glob pattern, not an ETS 300 075 pattern.

       mput PATTERN

              put multiple files whose names match PATTERN. PATTERN is interpreted a  shell  glob
              pattern, not an ETS 300 075 pattern.

              NOTE: The matched name is also used as the transfer name.  If pattern matched local
              files whose file name do not form a valid ETS 300-383 transfer name,  the  transfer
              of those files might fail.

       prompt [on|off]

              If  "on",  prior to each file transferred by mput or mget, the user is prompted for
              confirmation. If no parameter is given the on/off value is toggled.

              Possible user responses to the prompt:

              y    transfer the file
              n    don't transfer the file and prompt for the next one

       case [on|off]

              If "off", cases are ignored when matching PATTERN in mget and mput.   If  parameter
              is missing, toggle current parameter value.

              This currently does nor work with all versions of libc.

       Navigation Commands (related to directories)

       These  commands  are  likely  to  fail  because  many servers don't support the navigation
       facility. (The eftp4linux server, however, supports this :-)

       cd [DIRECTORY]

              This changes the current working directory ("current filestore") to  DIRECTORY.  If
              DIRECTORY is omitted, the default directory (this is the one initially entered when
              logged in) is changed to.

              This command is likely to fail because many servers don't  support  the  navigation


              This   prints  the  name  of  the  server's  current  working  directory  ("current
              filestore") to stdout.


              This corresponds to the  300-383  S-LIST  primitive.   It  prints  a  list  of  the
              subdirectories  contained  in the current working directory. The list items consist
              of a so called file store reference followed by  the  filestore  (directory)  name.
              (The  eftp4linux  server  supports this, but the filestore references are currently
              not generated totally norm conforming.)


              This corresponds to the ETS 300-383 LIST primitive.  It is  similar  to  the  slist
              command,  but  prints a list of all directories of the server. (Even the eftp4linux
              server does not support this).

       Misc Commands

       msg MESSAGE

              The MESSAGE string is send literally to the remote server if the server supports it
              (most servers won't) by means of the ETS 300-075 T-TYPED_DATA primitive.

              If  MESSAGE  is  ommitted,  the  client  will  prompt  for  the message string (can
              currently cause problems as protocol precessing is  currently  not  performed  whil
              waiting for the user input).

       lcd DIR

              change local working directory to DIR


              execute COMMAND-STRING as a shell command.


              This  will  quit  the  EUROFILE  session,  close  the connection, and exit the eftp


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