21 Aug 2007 mbrubeck   » (Journeyer)

Problems for shared desktop computers.

I share a home desktop computer with my wife. Our computer use is probably pretty typical of a home computer shared between a small number of users, where only one user is logged in at a time, and users have some shared files and some private files.

I've found many things that don't work as well as they could in this situation. We use Gnome on Debian GNU/Linux, but most other desktops have similar problems. I know fixes or workarounds for most of the problems below, but novice users would probably have a hard time finding them.

Some of the problems below are relatively easy to fix. Most already have bugs filed in the appropriate places, and some already have patches available. A few problems may require hard work or fundamental design changes to solve. Here is the complete list of problems:

User Switching:

  • If I select my name from FUSA while I'm not already logged in, GDM appears and I have to type my username. (The username should be filled in automatically.)
  • When GDM is started by FUSA, the X server has slightly settings, causing the fonts on the login screen to be a different size than my normal settings.
  • When I log out, I am taken either to a login screen or to another user's session, depending on the order in which users originally logged in. This is arbitrary and unpredictable.
  • If I switch to another user, my screen is locked. Later, if the computer is displaying a login screen and I type my username and password, I need to type my password a second time to unlock the screen.
  • When I shut down the computer, it does not warn me if other users are still logged in.

Filesystem:

  • By default, users can read all of each other's files, and write to none of each other's files (umask 0002). This is a reasonably sensible default, but most users on shared systems will want to change this to some degree.
  • It's very difficult for a user to change which other users can read which of her files. (Some strategies include making some or all files world writeable; adding the other users to her primary group; creating a new shared group and a share setgid directory owned by that group; changing her umask; and/or manually changing permissions of individual files.)
  • There is no good location by default for shared files. Various programs complain (correctly) about insecurity if my home directory is group-writeable, so I must create a world- or group-writeable (and setgid) directory elsewhere.
  • Copying from other locations, or using programs that do not respect umask, can cause users to inadvertently put non-group-writeable files in shared setgid directories. Other users of the shared directory have no easy way to fix this.
  • Some programs modify permissions or groups of files when overwriting them. (Usually this happens if the program moves the original file to a backup location, then writes a new version using the default settings instead of the original file's settings.)

Application data:

  • Applications that maintain a database of files (e.g. photo managers, music players) must be updated for each user when one user adds new files to a shared directory. For example, when I rip a CD to our shared music directory, my wife can't see the songs in her music player until she adds the new files to her database.
  • Applications that store their data in hard-coded locations in user home directories (e.g. Tomboy, Miro) can't share files between users. There is no setting or permission that will let my wife open Tomboy and view my Tomboy notes, for example.

Installing software:

  • When I install software using the system admin tools, it changes the application menu for all other users too.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!