home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-Update.iso / NEXTSTEP / unix / network / system / rumba.0.4.README < prev    next >
Encoding:
Text File  |  1997-02-12  |  9.7 KB  |  228 lines

  1. This is the README file for rumba.
  2.  
  3. What does rumba do?
  4. ===================
  5. If you know smbfs for Linux: rumba is roughly the same. It is derived
  6. from smbfs, but runs as a user level program, not in the kernel. If you
  7. know samba: rumba is roughly the opposite: a client for the Lanmanager
  8. protocol. If you know neither of these: rumba lets you mount drives
  9. exported by Windows (f.Workgroups/95/NT), Lan Manager, OS/2 etc. on
  10. Unix machines.
  11.  
  12.  
  13. Does rumba run on my machine?
  14. =============================
  15. Currently, rumba can be compiled for:
  16.   - NEXTSTEP 3.X and 4.X (tested for i386 and m68k architectures)
  17.   - Linux
  18. It should be relatively easy to port rumba to other Unix-like operating
  19. systems (see "How do I port rumba to XXX?")
  20.  
  21.  
  22. Where can I get rumba?
  23. ======================
  24. You can either fetch the source code or the binary distribution for
  25. NEXTSTEP/OPENSTEP. Note, however, that compiling the source for
  26. NEXTSTEP/OPENSTEP requires the developer version and gnumake, which is
  27. distributed with OPENSTEP but not with NEXTSTEP developer.
  28. You can download the following files:
  29.  
  30.     rumba.0.4.s.gnutar.gz       the sourcecode of rumba
  31.     rumba.0.4.NI.b.gnutar.gz    fat binary for Intel and Motorola CPUs
  32.  
  33. These files will be (or are) available from the sites:
  34.  
  35.     ftp://peanuts.leo.org/pub/comp/platforms/next/Unix/network/filetransfer/
  36.     ftp://next-ftp.peak.org/pub/next/submissions/
  37.     or wherever it will move to.
  38.  
  39.     ftp://hal.kph.tuwien.ac.at/pub/NeXT/tools/rumba/
  40.  
  41.  
  42. What's the difference between rumba and smbfs for Linux?
  43. ========================================================
  44. rumba is currently based on the modules "proc.c", "sock.c" and
  45. "smbmount.c" of smbfs 0.8, but runs in user-space, not as part of the
  46. kernel. It uses the nfs interface to the kernel. This has several
  47. advantages:
  48.   - In case of a crash, it's just a user program that crashes, not
  49.     the kernel. It should be possible to restart rumba and continue
  50.     the work.
  51.   - You can re-export the rumba-mounted filesystems with an nfs daemon
  52.     that allows re-exporting, because rumba has to create pseudo inode
  53.     numbers.
  54. Of course, there are also disadvantages:
  55.   - Nfs has no way of telling about open files and file locking. rumba
  56.     opens the file at every read- or write-request and keeps it open
  57.     for 5 seconds (without any locking) for a faster access in
  58.     subsequent accesses to the same file. This may cause problems with
  59.     file-locking by other clients. smbfs on the other hand keeps the
  60.     file open as long as it is opened by a program.
  61.   - Due to the translation to nfs, rumba is slower than smbfs.
  62.  
  63.  
  64. How do I use rumba?
  65. ===================
  66. The usage of rumba is more or less the same as that of smbmount for
  67. Linux:
  68.  
  69.     usage: rumba //server/service mount-point [options]
  70.  
  71.     -s servername   Netbios name of server
  72.     -c clientname   Netbios name of client
  73.         If the hostname of either the server or the client differs from
  74.         the respective hostname, you have to use these options to set
  75.         the netbios names.
  76.     -U username     Username sent to server
  77.         By default, the user name is read from the environment
  78.         variables "USER" or "LOGNAME". If these are not set or if you
  79.         want to log in to the server as a different user, use this
  80.         option to specify the username.
  81.     -u uid          uid the mounted files get
  82.     -g gid          gid the mounted files get
  83.         These options specify the Unix user- and group-IDs for the
  84.         mounted files. The defaults are the real user- and group-IDs of
  85.         the user that runs rumba. You can specify numeric or symbolic
  86.         IDs.
  87.     -f mode         permission the files get (octal notation)
  88.     -d mode         permission the dirs get (octal notation)
  89.     -C              Don't convert password to uppercase
  90.         These three options are self-explaining, I think.
  91.     -P password     Use this password
  92.         You can specify a password from the commandline. To avoid
  93.         compromising your password by using the "ps" command, rumba
  94.         overwrites it with '*' as soon as possible.
  95.     -n              Do not use any password
  96.                     If neither -P nor -n are given, you are
  97.                     asked for a password.
  98.     -S              Read/write access is safe. Without this
  99.                     option, files are closed when switching from
  100.                     read to write or vice versa
  101.         rumba opens all files for read and write. At least samba has
  102.         problems when the file is really used for read _and_ write. To
  103.         avoid these problems, rumba closes and reopens the file when it
  104.         switches from read to write or vice versa. If you don't need
  105.         this behaviour, you may switch it off with this option.
  106.     -w              allow setting files to read only
  107.         The implications of the read only attribute are slightly
  108.         different on DOS/Windows and Unix machines. To avoid problems
  109.         with this, rumba does not set files to read only, unless this
  110.         parameter is given.
  111.     -e              use getattrE and setattrE smb commands
  112.         The core version of the LanManager protocol uses only one time
  113.         per file: the time of the last modification. Unix has 3 times
  114.         for every file. Per default, only the core functions are used
  115.         and all three Unix times are set to the modification time.
  116.         If this option is specified, an attempt is made to use the
  117.         E-commands, which allow the transfer of all three times. The
  118.         disadvantage is a tremendous slowdown when attributes are read,
  119.         because the files must be open if the E-commands should be used.
  120.     -F .            don't fake . entry in root directory
  121.     -F ..           don't fake .. entry in root directory
  122.         Unix requires a "." and ".." entry in each directory. DOS-disks
  123.         don't have them in their root directory. If you mount the root of
  124.         a remote DOS-disk, these entries must be faked. This is the
  125.         default behaviour of rumba, because it is usual to mount the
  126.         root of the disk.
  127.     -h              print this help text
  128.     -v              print version number and exit
  129.     
  130.     -p port         Port to connect to (used only for testing)
  131.     -m max_xmit     max_xmit offered (used only for testing)
  132.     -D debug-mode   activate debugging (bitmask, hex/dec/octal
  133.                     notation) this option also forces foreground
  134.                     operation
  135.         Normally, rumba runs as a daemon. If a debug-mode is specified
  136.         (even if it's 0), rumba stays in foreground to make debugging
  137.         with a debugger easier.
  138.  
  139. To unmount a rumba-mounted directory, use the script "unrumba" that is
  140. distributed in the source directory:
  141.  
  142.     usage: unrumba (-a | <mounted path>)
  143.  
  144.     -a
  145.         Unmount all rumba mounted directories
  146.     <mounted_path>
  147.         Path of the mount point that should be unmounted
  148.  
  149. I have added the man-page for smbmount to this distribution, because
  150. the operation of rumba and smbmount is so similar. You can view it in
  151. a terminal window by typing:
  152.  
  153.     nroff -man smbmount.8 | more
  154.  
  155.  
  156. Security considerations
  157. =======================
  158. If you want that non-root users can use rumba und unrumba, you must
  159. install them "set uid root" (example for rumba):
  160.     chown root rumba
  161.     chmod u+s rumba
  162. This is a potential security risk. Bugs in rumba or unrumba might allow
  163. non root users to gain root access to your computer. If that's too risky
  164. for you, you can only use the programs as root.
  165.  
  166.  
  167. Bugs
  168. ====
  169. There are two known problems in rumba, which you might consider as
  170. bugs:
  171. 1.) The time needed for readdir is proportional to the number of entries
  172.     within the directory _squared_. This is due to the implementation in
  173.     proc.c from smbfs. It is unlikely that I will change this code
  174.     because I have not written it.
  175. 2.) unrumba is a shell script which is far from perfect. It uses grep to
  176.     find the mount entries in /etc/mtab and it finds all entries that
  177.     _contain_ the path specification you entered. If you are good in
  178.     awk and sed syntax, maybe you can help out with a better script.
  179.  
  180.  
  181. How do I port rumba to XXX?
  182. ===========================
  183. rumba should be relatively easy to port, as long as you have GNU-C
  184. available. There are three files to consider for a port:
  185.   - You have to make an entry in the system specific part of the
  186.     "Makefile".
  187.   - Every system specific header and define should go into #ifdefs in
  188.     "syshdr.h".
  189.   - You have to add a routine that does the mount() system call to
  190.     "syscall.c".
  191. If you have done a new port of rumba, please mail me your changes.
  192.  
  193.  
  194. Why is rumba based on smbfs and not on smblib?
  195. ==============================================
  196. It would be cleaner to use smblib, because it is designed for purposes
  197. such as rumba. However, smblib does not support setting and reading
  198. file attributes (at least I have not found these operations in version
  199. 0.5, which was the newest when I looked). Unfortunately, these
  200. operations are essential for rumba. All calls to the smbfs-routines
  201. are encapsulated in the file "smb_abstraction.c". This makes it easy
  202. to switch to smblib at a later date.
  203.  
  204.  
  205. References:
  206. ===========
  207. I have used parts of source code or concepts from the following GPL'ed
  208. programs:
  209.   - smbfs, the smb filesystem for Linux by Paal-Kr. Engstad and
  210.     Volker Lendecke
  211.   - nfs-server-2.1 for Linux by Mark A. Shand, Donald J. Becker,
  212.     Rick Sladkey, Fred N. van Kempen and Eric Kasten
  213.   - p3nfs, the Psion NFS daemon by Rudolf Koenig (I think)
  214.   - vmount (by me)
  215.  
  216.  
  217. Copyright:
  218. ==========
  219. rumba is distributed under the terms of the GNU General Public License
  220. (version 2). You should have received a copy of the GNU General Public
  221. License along with this program; if not, write to the Free Software
  222. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  223.  
  224.  
  225. Author:
  226. =======
  227. Christian Starkjohann <cs@hal.kph.tuwien.ac.at>
  228.