4. Technical Description The intent of this case is to integrate an open source file synchronizer 'unison' into Solaris OS. 4.1 Unison Introduction Unison is a cross-platform file-synchronization tool [1]. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other. [2] 4.2 Security concerns: Security becomes a concern when synchronizing files across network. Unison provides two methods for communicating between the client and the server: * Remote shell method: To use this method, you must have some way of invoking remote commands on the server from the client's command line, using a facility such as ssh. This method is more convenient and also more secure (especially if you use ssh). * Socket method: This method requires only that you can get TCP packets from the client to the server and back. The socket method is insecure: not only are the texts of your changes transmitted over the network in unprotected form, it is also possible for anyone in the network to connect to the server process and read out the contents of your file system! The socket method is provided only for expert users with specific needs; everyone else should use the remote shell (ssh) method. 4.3 Limitations: There are a few limitations in current version of Unison [2]: 4.3.1 In the interests of speed, the update detection algorithm may (depending on which OS architecture that you run Unison on) actually use an approximation. 4.3.2 When synchronize between a single-user file system and a shared Unix server, by default, Unison will synchronize permissions verbatim, which may leave group-writable files on the server that could be written over by a lot of people. 4.3.3 The graphical user interface of Unison is single-threaded. 4.3.4 Unison does not understand hard links. 4.3.5 Renaming directories that containing "ignore"d files may result in loss of data. 4.5 Interfaces 4.5.1 Imported Interfaces +------------------------------------------------------------------+ | NAME | STABILITY LABEL | DESCRIPTION | +-----------------------+-----------------+------------------------+ | libsocket | Committed | PSARC/1995/014 | +------------------------------------------------------------------+ 4.5.2 Exported Interfaces +------------------------------------------------------------------+ | NAME | PROPOSED | DESCRIPTION | | | STABILITY LABEL | | +-----------------------+-----------------+------------------------+ | SUNWunison | Uncommitted | Unison package | |-----------------------+-----------------+------------------------| | /usr/bin/unison | Uncommitted | Unison executable | |-----------------------+-----------------+------------------------| | ~/.unison/default.prf | Uncommitted | Unison default profile | +------------------------------------------------------------------+ 4.6 Release binding Release binding requested: patch/micro. 6. Resources and Schedule 6.4 Steering Committee Requested Information 6.4.1 Consolidation C-team Name: SFW 6.5 ARC review type: Fast Track 6.6 ARC exposure: open Footnotes: ---------- [1] http://www.cis.upenn.edu/~bcpierce/unison [2] See man page of Unison for more details.