Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad entry: https://features.launchpad.net/distros/ubuntu/+spec/roaming-profiles
A system for Roaming Profiles, whether stored on a file server or on removable media, that will synchronize user data to the working /home directory upon login/logout.
Ubuntu needs a good way of managing user settings and data when that information does not reside permanently on the system or when mounting the filesystem that contains that information is not desirable. A roaming profile system which "caches" the information for use and then syncs the cache to the permanent storage medium would provide a robust solution.
Gadi plugs his USB drive into a terminal at his local public library. He is authenticated by the system and his "profile" is sync'd from the USB drive to his /home directory on the library's Ubuntu system. After making changes to his desktop background and his resume, he logs off and his changes are sync'd back to his USB drive. On his home Windows PC, he continues to work on his documents. The next day, he goes to another branch of the library and is able to plug in his USB drive and bring up his "profile" on their Ubuntu system.
Jim is the IT director of his school, which has five application servers and one file server which stores all of the users' /home directories. When one of the students, Jane, logs into application server 1, her "profile" is copied to the application server's hard drive. A loss of connectivity between the application server and the file server does not impact her session.
The basic design is to employ a syncing tool, such as rsync or unison, to sync data between a local cache and a "permanent store" (on network or removable storage device) upon login and logout (as well as perhaps a delayed sync when lost connectivity to the permanent store is restored). In addition, there should be a blacklist/whitelist mechanism to exclude directories that should not be sync'd.
Throughout the design, we should have a few scenarios in mind:
1. Syncing documents and settings: such as when a each user sits at the same computer every day.
2. Syncing only settings: such as when users regularly use different computers throughout the day.
3. No syncing: such as when settings are immutable or settings are accessed through the network (as with an nfs-mounted /home).
NOTE: These are 3 general policies that are anticipated, while finer control over the details should be made possible. "The easy things should be easy and the hard things should be possible."
Another option should be whether the local cache is destroyed after syncing or is retained and for how long.
Another option should be whether an attempt is made to sync the cache when connectivity is restored.
Data preservation and migration