XFS is the X font server and is typically used by the X windowing
system to render fonts.
1. Configuration
The configuration for xfs is typically located in /etc/X11/fs/config.
The man page for xfs says that the default location for the "config"
file is /usr/X11R6/lib/X11/fs, but this is a symlink to /etc/X11/fs
2. Startup
XFS is started via the init.d script /etc/init.d/xfs. This script
locates the fontpath entries (using chkfontpath --list) and recaches
fonts.* files (via fc-cache)
3. Font files
Font files (truetype, Type1, etc) are contained within directories
which must have the fonts.* files created within them. These
directories must appear in the xfs config catalogue entry for them
to be located by the font server. The fonts.* files can be re-created
manually by running fc-cache in each font directory, however this
will happen automagically when the init.d script for xfs is started.
4. Security
A. Running xfs with the "droppriv" option
Since xfs 6.8.x certain security precautions have been added to
try and avoid unknown buffer overrun exploits. Specifically,
the "-droppriv" is implemented to ensure that the xfs instance
is run as user "xfs". For this to work, there must be a user
called "xfs", otherwise the xfs instance won't start and there
won't be a font server for X, which will manifest as X failing
to start with obscure messages like "can't locate "fixed" font"
The xfs init.d script (/etc/init.d/xfs) now attempts to star
xfs with the -droppriv option, which as caused some problems
with FC4. One workaround for this is to simply remove this
from the startup script. E.g., the xfs init.d script in rpm
xorg-x11-xfs-6.8.2-37.FC4.49.2 has line 74 as:
daemon xfs -droppriv -daemon
Simply changing this to:
daemon xfs -daemon
Will provide a workaround at some expense in security.