Finding unowned and multiply-owned directories

Jason L Tibbitts III tibbs at
Sun Oct 8 05:28:41 UTC 2006

I have spent a bit of time working on a utility which parses repodata
(filelists.xml) and determines which directories are multiply owned
and which are unowned.  The result seems to work pretty well, but the
full report (run over both core and extras repodata) is 30000 lines.

Here's a sample:

> ./dircheck -v -c filelists.xml:core -c filelists-extras.xml:extras
Loading filelists.xml
Loading filelists-extras.xml
Finding multiply owned directories.
/usr/lib/sse is multiply owned:
        atlas-sse (extras)
        atlas-sse-devel (extras)
/usr/libexec/gcc/i386-redhat-linux/4.1.1 is multiply owned:
        gcc-gfortran (core)
        gcc-objc (core)
        gcc-c++ (core)
        gcc-java (core)
        cpp (core)
        gcc-gnat (core)
        gcc-objc++ (core)
        gcc (core)
Finding unowned directories.
Odd, parent directory of /etc/init.d/aiccu is a file (maybe a symlink).
/etc/NetworkManager/VPN is unowned, occupied by:
        /etc/NetworkManager/VPN/, in package NetworkManager-openvpn (extras)
        /etc/NetworkManager/VPN/, in package NetworkManager-vpnc (extras)
/etc/X11/gdm/Sessions is unowned, occupied by:
        /etc/X11/gdm/Sessions/Blackbox, in package blackbox (extras)
        /etc/X11/gdm/Sessions/Hackedbox, in package hackedbox (extras)
/etc/canna is unowned, occupied by:
        /etc/canna/cannahost, in package Canna (extras)
        /etc/canna/default.canna, in package Canna (extras)
/etc/diskdump is unowned, occupied by:
        /etc/diskdump/, in package diskdumputils (core)
/etc/exim is unowned, occupied by:
        /etc/exim/exim.conf, in package exim (extras)

The script is far from finished, and there's plenty that I still want
to do with it.  (The original intention was to check a single RPM
against the repodata to see if it owned anything it wasn't supposed
to.)  And I'm sure there are false positives, since the "no
multiply-owned directories" rule can not always be satisfied.  Still,
it gives a useful starting point for further investigation.

I will continue working on the script and at some point would like to
get it into CVS.  (If someone can assist me in getting a module set
up, or can let me know of an existing module where this could go, I'd
be appreciative.)  I can also put up a full report somewhere if
there's agreement that this kind of information is useful.  If it is,
I suppose we could eventually generate some kind of periodic nag mail,
but at this point it's _way_ too long to post.

To start small with something that's almost certainly a problem,
here's a (hopefully) complete list of everything that owns directories
also owned by the filesystem package.  To shorten the list a bit, I
noted that /usr/share/man* are all owned by both man-pages and
filesystem and removed them from this list.

/var/lock is multiply owned:
        filesystem (core)
        lockdev (core)
        filesystem (core)
        glibc-common (core)
/usr/share/man is multiply owned:
        xorg-x11-drv-magictouch (core)
        filesystem (core)
        xorg-x11-drv-sisusb (core)
        xorg-x11-drv-void (core)
/usr/include is multiply owned:
        ncpfs (core)
        filesystem (core)
        glibc-headers (core)
/usr/share/applications is multiply owned:
        gdm (core)
        system-config-httpd (core)
        gnome-session (core)
        kdelibs (core)
        gedit (core)
        xsane (core)
        filesystem (core)
        bug-buddy (core) (core) (core) (core) (core) (core) (core)
        gftp (core)
        gnome-games (core)
        nautilus (core)
/usr/share/man/mann is multiply owned:
        tclx-doc (core)
        filesystem (core)
        tix-devel (core)
/usr/lib is multiply owned:
        filesystem (core)
        xorg-x11-drv-i810 (core)
        xorg-x11-drv-i810-devel (core)
/etc/skel is multiply owned:
        zsh (core)
        filesystem (core)
/usr/lib/sse2 is multiply owned:
        filesystem (core)
        atlas-sse2 (extras)
        atlas-sse2-devel (extras)
/usr/sbin is multiply owned:
        filesystem (core)
        rgmanager (core)
/usr/share/man/man1 is multiply owned:
        man-pages (core)
        filesystem (core)
        gnome-power-manager (core)
/usr/share/xsessions is multiply owned:
        filesystem (core)
        wmx (extras)
/etc/X11 is multiply owned:
        xorg-x11-xinit (core)
        filesystem (core)
        xorg-x11-xsm (core)
        xorg-x11-xfs (core)
/usr/lib/gcc-lib is multiply owned:
        filesystem (core)
        compat-libgcc-296 (core)
/usr/share/pixmaps is multiply owned:
        gdm (core)
        gnome-applet-vm (core)
        gnome-applets (core)
        filesystem (core)
        tsclient (core)
        redhat-artwork (core)
        gftp (core)
        gnome-games (core)
        nautilus (core)
/var/yp is multiply owned:
        ypserv (core)
        filesystem (core)
        ypbind (core)
        yp-tools (core)
/usr/lib/X11 is multiply owned:
        xorg-x11-xfwp (core)
        filesystem (core)
        xorg-x11-filesystem (core)
        xorg-x11-xsm (core)

 - J<

More information about the Fedora-maintainers mailing list