
                          ______  ______   ______  _____   
                         /_  __/ / ____/  / ____/ / ___/  
                          / /   / /      / /_     \__ \  
                         / /  _/ /___ _ / __/  _ ___/ /  
                        /_/  (_)____/(_)_/    (_)____(_) 
                     
                       TCFS v2.1.0beta INSTALLATION GUIDE
                          Latest update: June 25 1998

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

 TCFS Installation guide
 -----------------------

 TCFS Requirements
 
 - Linux 2.0.xx kernel
 - Module support (if you want use TCFS as a module)
 - EXT2 Filesystem (all Linux system should have it)
 - At least one NFS server and one client both running Linux 
	(client and server need not to be different machines)

 Installing TCFS on client
 
 1.
	Get all the packages you need. If this is the first time you install
 	TCFS, then get all the packages. You can do this by getting the file:
 		tcfs-2.1.0b-distrib.tar.gz

 	1.A (only if you downloaded tcfs-2.1.0b-distrib.tar.gz)
		Untar the distribution
				tar xfz tcfs-2.1.0b-distrib.tar.gz
		wherever you want.

 2.
	Patch the current Linux kernel:
		cd /usr/src
		patch -p0 < path_to_tcfs_distrib/patch-linux-2.0.x-tcfs

 3.
	Untar TCFS source code:
		cd /usr/src
		tar xfz tcfs-2.1.0b.tar.gz

 4.
	Compile and install the TCFS library:
		tar xfz tcfslib-0.1.tar.gz
		cd tcfslib-0.1
		make install
		ldconfig
	
	If you want to change the installation directory, edit and
	modify the top Makefile (tcfslib-0.1/Makefile).

	This step will also compile 'pam_tcfs.so'.
	To install it please refer to the directory PAMTCFS.
	
 5.
	Compile and install the TCFS utilities:
		tar xfz tcfsutils-1.0.tar.gz
		cd tcfsutils-1.0
		make
		make install
	
	Edit the tcfsutils-1.0/src/Makefile if you have glibc 2.0.

 6.
	Compile and install the modified mount (version 2.7g):
		tar xfz mount-2.7g-tcfs.tar.gz
		cd mount-2.7g-tcfs
		make
		make install

	[If you downloaded only the patch, then you need to get the original
	source code of mount-2.7g and apply the patch by hand before
	compiling it.]

 7.
	Compile and install the modified e2fsprogs (version 1.06 [1.10?]):
		tar xfzv e2fsprogs-1.06-tcfs.tar.gz
		cd e2fsprogs-1.06-tcfs
		make
		make install

	[If you downloaded only the patch, then you need to get the original
	source code of e2fsprogs-1.06 and apply the patch by hand before
	compiling it.]

 8.
 	Compile and install the modified shadow password suite
 	(version 980529):
 		tar xfz shadow-980529-tcfs.tar.gz
 		cd shadow-980529-tcfs
 		./configure --with-libtcfs
 		make
 		make install

	[If you downloaded only the patch, then you need to get the original 
	source code of shadow-980529 and apply the patch by hand before
	compiling it.]

 9.
 	Recompile and install your kernel with TCFS support.
	This step requires choosing a cypher to use.
	Now available DES, IDEA and RC5.
	WARNING: RC5 is broken! Do not use it.

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


Installing TCFS on a server:
 
 1.
	Compile and install the xattrd daemon:
		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 the  /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.

