                The Undelete System, a Unix Undelete.
                =====================================






        Description
        -----------


        Because the DOS-approach to undelete files isn't usable on unix systems
        we must write our own `delete' and `undelete' programs, where the
        `delete ' program will do nothing else than copying the files to delete
        to a special directory (1 directory for the whole system, rather than 1
        for every user), so the `undelete' program will be able to place the
        files back.
        To guarantee that no security breach will occur, these operations need
        to be done by a handler that runs under `root' permissions.


        Important aspects are :

              - To be able to accomodate a great deal of operations
                simultaniously, the handler will need to fork() every time a
                new `client' needs its services, so the child process will
                perform the actual operation while the parent process waits for
                new requests.

              - Communication between handler and client processes is essential
                and should be as fast as possible. Therefore, we will use IPC
                communications (especially message queues) to accomplish this.

              - Another very important aspect is security. It should be clear
                that files belonging to one user can only be deleted by another
                user if the file permissions are set accordingly and that one
                user should not be able to undelete files belonging to someone
                else.

              - Last but not least, a decent `replacement strategy' is needed
                as it is not desirable that the `deleted' files will occupy an
                unlimited amount of disk space. On the contrary, it is much
                more desirable to be able to restrict not only the total amount
                of disk space used by these files, but also the amount of files
                and diskspace that may be used by every user (and/or group)
                seperately.
                Another possibility is to accomplish a manner for every user to
                fine-tune the replacement strategy, so the user can determine
                what files will be `permanently removed' first.


Have fun with it and don't hesitate to contact me if there are any problems,
Peter.

------------------------------------------------------------------------------
 Peter Vanderborght	|     Telephone : +32-15-529377 (timezone GMT+1)
 Oude Baan 177		|  
 B-2820 Bonheiden	|     InterNet : vdborght@uia.ua.ac.be
 Belgium		|     FidoNet  : 2:292/505.26
------------------------------------------------------------------------------
