# udev_permissions - The name and location of the udev permission file
udev_permissions="/etc/udev/udev.permissions"
-# default_mode - set the default mode for all nodes that have no
+# default_mode - set the default mode for all nodes that have no
# explicit match in the permissions file
default_mode="0600"
+# default_owner - set the default owner for all nodes that have no
+# explicit match in the permissions file
+default_owner="root"
+
+# default_group - set the default group for all nodes that have no
+# explicit match in the permissions file
+default_group="root"
+
return NULL;
}
-static mode_t get_default_mode(struct sysfs_class_device *class_dev)
+static mode_t get_default_mode(void)
{
mode_t mode = 0600; /* default to owner rw only */
strfieldcpy(udev->group, perm->group);
} else {
/* no matching perms found :( */
- udev->mode = get_default_mode(class_dev);
+ udev->mode = get_default_mode();
strncpy(udev->owner, get_default_owner(), OWNER_SIZE);
strncpy(udev->group, get_default_group(), GROUP_SIZE);
}
dbg("chmod(%s, %#o) failed with error '%s'",
filename, dev->mode, strerror(errno));
- if (*dev->owner) {
+ if (dev->owner[0]) {
char *endptr;
unsigned long id = strtoul(dev->owner, &endptr, 10);
- if (*endptr == 0x00)
+ if (endptr[0] == '\0')
uid = (uid_t) id;
else {
struct passwd *pw = getpwnam(dev->owner);
- if (!pw)
- dbg("user unknown '%s'", dev->owner);
+ if (pw == NULL)
+ dbg("specified user unknown '%s'", dev->owner);
else
uid = pw->pw_uid;
}
}
- if (*dev->group) {
+ if (dev->group[0]) {
char *endptr;
unsigned long id = strtoul(dev->group, &endptr, 10);
- if (*endptr == 0x00)
+ if (endptr[0] == '\0')
gid = (gid_t) id;
else {
struct group *gr = getgrnam(dev->group);
- if (!gr)
- dbg("group unknown '%s'", dev->group);
+ if (gr == NULL)
+ dbg("specified group unknown '%s'", dev->group);
else
gid = gr->gr_gid;
}
}
/* create symlink if requested */
- if (*dev->symlink) {
+ if (dev->symlink[0]) {
symlinks = dev->symlink;
while (1) {
linkname = strsep(&symlinks, " ");
This is the default mode for all nodes that have no explicit match in the
permissions file. The default value for this is
.I 0666
+.TP
+.B default_owner
+This is the default owner for all nodes that have no explicit match in the
+permissions file. The default value for this is
+.I root
+.TP
+.B default_group
+This is the default group for all nodes that have no explicit match in the
+permissions file. The default value for this is
+.I root
.br
.P
.RI "A sample " udev.conf " might look like this:
# default_mode - set the default mode for all nodes that have no
# explicit match in the permissions file
default_mode="0666"
+
+# default_owner - set the default owner for all nodes that have no
+# explicit match in the permissions file
+default_owner="root"
+
+# default_group - set the default group for all nodes that have no
+# explicit match in the permissions file
+default_group="root"
.fi
.P
The rules for udev to use when naming devices may specified at
#define NAME_SIZE 100
#define OWNER_SIZE 30
#define GROUP_SIZE 30
+#define MODE_SIZE 8
struct udevice {
char name[NAME_SIZE];
extern char udev_permissions_filename[PATH_MAX+NAME_MAX];
extern char udev_config_filename[PATH_MAX+NAME_MAX];
extern char udev_rules_filename[PATH_MAX+NAME_MAX];
-extern char default_mode_str[NAME_MAX];
+extern char default_mode_str[MODE_SIZE];
extern char default_owner_str[OWNER_SIZE];
extern char default_group_str[GROUP_SIZE];
char udev_permissions_filename[PATH_MAX+NAME_MAX];
char udev_rules_filename[PATH_MAX+NAME_MAX];
char udev_config_filename[PATH_MAX+NAME_MAX];
-char default_mode_str[NAME_MAX];
+char default_mode_str[MODE_SIZE];
char default_owner_str[OWNER_SIZE];
char default_group_str[GROUP_SIZE];