______  ______   ______  _____
                        /_  __/ / ____/  / ____/ / ___/
                         / /   / /      / /_     \__ \
                        / /  _/ /___ _ / __/  _ ___/ /
                       /_/  (_)____/(_)_/    (_)____(_)

                                    TCFS v2.0
-------------------------------------------------------------------------------

This directory contains a new distribution of the TCFS package.

The new distribution structure is:

tcfs2.0pl5.diff         - Patch for Linux 2.0.xx kernels.
                         This patch adds TCFS support to the Linux kernel.
                         To apply this patch cd to /usr/src and type
                         patch -p0 < tcfs2.0pl5.diff.

tcfsutils.tgz           - Utilities needed by TCFS
                         (tcfsgenkey,tcfslogin,tcfslogut).

mount.tgz               - Patched mount command. This mount supports tcfs
                         filesystem.

xattrd.tgz              - XATTRD daemon needed to handle ext2 fs extended
                         attributes via RPC.

admin.tgz               - Patched poeigl package.

e2fsprogs.tgz           - Patched e2tools (lsattr and chattr).

patches dir             - Patches for poeigl, mount and e2fsprogs.


-------------------------------------------------------------------------------

INSTALLATION ON SERVER:

- Compile and install xattrd daemon;
- Add all filesystem you want export to your /etc/exports file;
- Add xattrd to your rc files and reboot the system.

INSTALLATION ON CLIENT:

- Install tcfs2.0pl5.diff:
       - cd to /usr/src and type patch -p0 < tcfs2.0pl5.diff
       - recompile your kernel and modules adding TCFS support

- Compile and install mount package;

- Compile and install tcfsutils package;

- Compile and install admin package.

For installation instruction of tar packages and follow instruction in
the README files.

Precompiled binaries for mount, tcfsgenkey, tcfslogin, tcfslogout, lsattr,
chattr, xattrd and passwd could be found in the binaries directory.

-------------------------------------------------------------------------------

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 described 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.