Re: .udev.tdb ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



OK, done.

Here are a few entries from the resulting trace
of calls to restorecon from a clean reboot
with 'enforcing=0'. The first call is the
last one in the trace prior to a number
of calls from udev:

params:/var/run/sm-client.pid
total 4
lrwx------  1 root root 64 Jul 21 07:28 0 -> /dev/pts/0
l-wx------  1 root root 64 Jul 21 07:28 1 -> /root/file
lrwx------  1 root root 64 Jul 21 07:28 2 -> /dev/pts/0
lr-x------  1 root root 64 Jul 21 07:28 3 -> /proc/2423/fd
params:/dev/lp0
total 6
lrwx------  1 root root 64 Jul 21 07:28 0 -> socket:[906]
l-wx------  1 root root 64 Jul 21 07:28 1 -> /root/file
l-wx------  1 root root 64 Jul 21 07:28 2 -> pipe:[914]
lrwx------  1 root root 64 Jul 21 07:28 3 -> socket:[915]
lrwx------  1 root root 64 Jul 21 07:28 4 -> /dev/.udev.tdb
lr-x------  1 root root 64 Jul 21 07:28 5 -> /proc/2446/fd
params:/dev/snd/timer
total 6
lrwx------  1 root root 64 Jul 21 07:28 0 -> socket:[906]
l-wx------  1 root root 64 Jul 21 07:28 1 -> /root/file
l-wx------  1 root root 64 Jul 21 07:28 2 -> pipe:[914]
lrwx------  1 root root 64 Jul 21 07:28 3 -> socket:[915]
lrwx------  1 root root 64 Jul 21 07:28 4 -> /dev/.udev.tdb
lr-x------  1 root root 64 Jul 21 07:28 5 -> /proc/2632/fd
...... (many more)

As you suspected, it looks like udev is
leaving fd 4 (/dev/.udev.tdb) open
across the exec (i.e., has not set
FD_CLOEXEC).

I've bugzilla-ed this here:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=128304

Thanks for helping track this down.
  tom

Russell Coker wrote:

On Wed, 21 Jul 2004 02:35, Tom London <selinux@xxxxxxxxxxx> wrote:


Yikes.... sorry, but this doesn't look right....
now produces hordes of 'restorecon' avcs....

Jul 20 09:23:46 fedora kernel: audit(1090340592.421:0): avc: denied {
read write } for pid=991 exe=/sbin/restorecon path=/dev/.udev.tdb
dev=hda2 ino=2698913 scontext=system_u:system_r:restorecon_t
tcontext=system_u:object_r:udev_tbl_t tclass=file



udev calls restorecon to set the correct type of a device node it has just created.


restorecon has no business in opening /dev/.udev.tdb and I really doubt that it is doing so. I expect that udev is opening /dev/.udev.tdb, not using fcntl(fd, F_SETFD, FD_CLOEXEC) to set the fd to close on execute, and not calling close(fd) before the exec.

Please file a bugzilla report about this. To assist in tracking it down rename /sbin/restorecon to /sbin/restorecon.orig and put the following shell script in place as /sbin/restorecon:
#!/bin/sh
echo -n params: >> /root/file
for n in $*; do echo -n "$n "; done >> /root/file
echo "" >> /root/file
ls -l /proc/self/fd >> /root/file
exec /sbin/restorecon.orig $*


Run the machine in permissive mode while doing this and don't bother about the AVC messages about not being permitted to write to /root/file.



Jul 20 09:23:47 fedora kernel: audit(1090340600.740:0): avc: denied {
unlink } for pid=1297 exe=/sbin/udev name=microcode dev=hda2
ino=2689375 scontext=system_u:system_r:udev_t
tcontext=system_u:object_r:device_t tclass=lnk_file



allow udev_t device_t:lnk_file create_file_perms; Add the above policy to allow this.




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux