 TCFS Installation guide

 TCFS Requirements
 
 - Linux 2.0.xx kernel
 - Module support (if you want put it as a module)
 - EXT2 Filesystem (all Linux system should have it)
 - At least one NFS server and one client both running Linux (you could 
   use TCFS on the same machine using it like a client of itself)

 Installing TCFS on client
 
 1. Untar the distributon
       cd to /usr/src 
       tar xvfz tcfs.tgz 
    (here we assume you have your kernel source in /usr/src/linux)

 2.  Patch your kernel sources
      patch < /usr/src/linux/fs/tcfs/patches/tcfs.diff

 3. Install utilities
	Utils for TCFS are in /usr/src/linux/fs/tcfs/contrib
        copy them to your bin dir
        Among others we provide a new version of the passwd and mount commands.

 4.  Recompile your kernel to add TCFS support

 5.  To link the TCFS module to the kernel   execute command
	insmod tcfs

 Installing TCFS on server
 
 1. Simply copy the xattrd(*) daemon from 
    /usr/src/linux/fs/tcfs/contrib/binaries to your super user bin dir
    (usually /usr/sbin)
 2. Run xattrd and add it to your rc files.
 
 Mounting a TCFS filesystem on the client machine
 
 Suppose your server exports /exports dir,
 and suppose your client want mount server:/exports on /mnt/server,

 Mount /mnt/server using the following command
 
            mount -t tcfs server:/exports /mnt/server
            
 (The use of TCFS patched mount is required to use the TCFS way to mount 
  directories, this mount opens two socket with the server not one like an
  ordinary NFS mount operation; specifying -t tcfs parameter is necessary to
  enable a TCFS mount, elsewhere will result in an ordinary NFS mount)
  
  
 How to use TCFS mounted filesystem on client
 
 1. First make user /mnt/server is mounted as descrideb above. 
   If not ask your superuser to mount it.
 2. Generate your key by running utility tcfsgenkey(*) 
   (this has to be done only once for each user).
 3. Execute tcfslogin(*) to push your key in the TCFS kernel module.
   (this has to be done once for each session).
 4. Cd to /mnt/secure and work there, obviously you must have a directory in
   /mnt/secure you own, suppose /mnt/secure/userlogin
 5. Utilities lsattr(*) and chattr(*) list and set secure flags.
   
   
(*) Refer to the manual for more information.

 
