
                          ______  ______   ______  _____   
                         /_  __/ / ____/  / ____/ / ___/  
                          / /   / /      / /_     \__ \  
                         / /  _/ /___ _ / __/  _ ___/ /  
                        /_/  (_)____/(_)_/    (_)____(_) 
                     
                      TCFS v2.1.0alpha INSTALLATION GUIDE
                         Latest update January 28 1998

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

 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 distribution
	tar xfz tcfs-2.1.0a.tar.gz
    wherever you want.

 2. Patch the current Linux sources:
	cd /usr/src
	patch -p0 < path_to_tcfs/tcfs-2.1.0a.diff

 3. Install utilities
	cd /usr/src/linux/fs/tcfs/contrib/utils
	make
	make install
	
	If you want to change the installation directory, edit and
	modify the top Makefile (tcfs/contrib/utils/Makefile).

	This step will also compile 'pam_tcfs.so'.
	To install it please refer to the directory PAMTCFS.
	
 4. Install the modified mount (version 2.7g)
	Untar mount-2.7g distributed with this package:
		tar xfzv mount-2.7g-tcfs.tar.gz
		cd mount-2.7g-tcfs
		make
		make install

 5. Install the modified e2fsprogs (version 1.06 [1.10?])
	Untar the e2fsprogs-1.06 distributed with this package:
		tar xfzv e2fsprogs-1.06-tcfs.tar.gz
		cd e2fsprogs-1.06-tcfs
		make
		make install

 6.  Recompile your kernel to add TCFS support.
	This step requires choosing a cypher to use.
	Now available DES, IDEA and RC5.

 7.  If you've compiled TCFS as a module, load it in the kernel:
	insmod tcfs

 Installing TCFS on server
 
 1. Install the xattrd daemon distributed with this package:
	tar xfzv xattrd-2.0.tar.gz
	cd xattrd
	make
	make install

 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 wants to mount server:/exports on /mnt/server,

 Mount /mnt/server using the following command
 
            mount -t tcfs server:/exports /mnt/server
            
 How to use a TCFS filesystem on a client
 
 1. First make sure that /mnt/server is mounted as described above. 
    If not, ask your superuser to mount it.
 2. Ask your superuser to create an entry for you in the TCFS key database
    (by executing the command 'tcfsadduser').
 3. Generate a key for yourself by executing 'tcfsgenkey'.
 4. Execute the following steps for each non PAM session:
	- at the beginning execute 'tcfsputkey';
	  this pushes your key into the TCFS kernel module.
	  A good idea would be to add this command to your shell initialization
	  file.
	- at the end of the session execute 'tcfsrmkey';
	  this removes your key from the TCFS kernel module
	  (unless there are other active sessions using TCFS).
 5. Utilities lsattr and chattr list and set secure flags.
