diff -uNr udev-046.orig/etc/udev/udev.permissions.gentoo udev-046/etc/udev/udev.permissions.gentoo --- udev-046.orig/etc/udev/udev.permissions.gentoo 2004-11-18 20:39:15.000000000 +0100 +++ udev-046/etc/udev/udev.permissions.gentoo 2004-12-01 21:22:15.095677080 +0100 @@ -114,7 +114,6 @@ raw/*:root:disk:660 # disk devices -hd*:root:disk:660 sd*:root:disk:660 dasd*:root:disk:660 ataraid*:root:disk:660 diff -uNr udev-046.orig/namedev.c udev-046/namedev.c --- udev-046.orig/namedev.c 2004-11-18 20:39:15.000000000 +0100 +++ udev-046/namedev.c 2004-12-01 21:18:42.945928744 +0100 @@ -720,7 +720,9 @@ struct config_device *dev; struct perm_device *perm; struct sysinfo info; + char linkname[NAME_SIZE]; char *pos; + int len; udev->mode = 0; dbg("class_dev->name='%s'", class_dev->name); @@ -817,6 +819,18 @@ perms: /* get permissions given in config file or set defaults */ perm = find_perm(udev->name); + if (perm != NULL) + goto perms_found; + + /* try to match the symlink name */ + foreach_strpart(udev->symlink, " ", pos, len) { + strfieldcpymax(linkname, pos, len+1); + perm = find_perm(linkname); + if (perm != NULL) + goto perms_found; + } + +perms_found: if (perm != NULL) { set_empty_perms(udev, perm->mode, perm->owner,