A computer system that allows for multiple users that each have access to
shareable files. In one exemplary embodiment, each user has a user file
tree that corresponds to the shareable file tree and initially contains
links or pointers to selected shareable files. Each user also has a
private file area to store files. If a user wishes to access a shareable
file to perform an action that does not modify the shareable file, then
the user file tree will point to the shareable file and allow the user to
access the file. On the other hand, if the user wishes to access a
shareable file and perform an operation that modifies the shareable file,
the computer system will make a copy of the shareable file and place the
copy in the user's private file area. Next, the computer system will
modify the user's file tree such that the link that pointed to the
shareable file now points to the copy of the shareable file that was
placed in the user's private file area. The user is then able to access
the copy and may modify the copy. Because each user's private file area
is not publicly available, any changes made by this user are not visible
to any other user.