/var/lib/gdm oddness.

Daniel P. Berrange berrange at redhat.com
Wed Mar 12 20:25:16 UTC 2008


On Wed, Mar 12, 2008 at 04:17:41PM -0400, Colin Walters wrote:
> 
> On Wed, 2008-03-12 at 16:10 -0400, Dave Jones wrote:
> > Anyone know whats up with the permissions on /var/lib/gdm/.gvfs ?
> > On upgrade of certain packages, I'm seeing the error..
> > cannot access /var/lib/gdm/.gvfs: Permission denied
> > 
> > ls -l of that shows..
> > 
> > d?????????  ? ?    ?       ?                ? .gvfs/
> > 
> > My initial thought was 'eek, filesystem corruption'.
> > Rebooting and running fsck picks up nothing.
> > And in fact, when in runlevel 1, the permissions look sane.
> 
> GNU coreutils ls will show that if it can readdir() but not stat().
> Normally stat() cannot fail (libc manual only shows ENOENT), but with
> SELinux it can fail with EACCES.  So my guess is that SELinux policy is
> denying access to that file.

The manpage you are looking at for stat() is bogus. Both the Linux and
POSIX man pages for stat()  document EACCESS and many many other possible
error codes you must expect from stat().

[quote stat(3p)]
ERRORS
       The stat() function shall fail if:

       EACCES Search permission is denied for a component of the path pre-
              fix.

       EIO    An error occurred while reading from the file system.

       ELOOP  A loop exists in symbolic links encountered  during  resolu-
              tion of the path argument.

       ENAMETOOLONG
              The  length  of  the  path  argument exceeds {PATH_MAX} or a
              pathname component is longer than {NAME_MAX}.

       ENOENT A component of path does not name an existing file  or  path
              is an empty string.

       ENOTDIR
              A component of the path prefix is not a directory.

       EOVERFLOW
              The  file size in bytes or the number of blocks allocated to
              the file or the file serial  number  cannot  be  represented
              correctly in the structure pointed to by buf.

       The stat() function may fail if:

       ELOOP  More than {SYMLOOP_MAX} symbolic links were encountered dur-
              ing resolution of the path argument.

       ENAMETOOLONG
              As a result of encountering a symbolic link in resolution of
              the  path  argument,  the length of the substituted pathname
              string exceeded {PATH_MAX}.

       EOVERFLOW
              A value to be stored would overflow one of  the  members  of
              the stat structure.
[/quote]

Dan.
-- 
|: Red Hat, Engineering, Boston   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the fedora-devel-list mailing list