mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-03-06 04:20:29 +07:00
[PATCH] set default owner/group in db - update
I've edited the man page today, so this is alreay included :) Also a few more trivials: o added the defaults to udev.conf.in o removed class_dev from get_default_mode(), to match with Hanna's o changed size of mode_str to MODE_SIZE o changed a few char compares from from 0x00 to '\0'
This commit is contained in:
parent
74c73ef994
commit
765cbd9759
@ -17,7 +17,15 @@ udev_rules="/etc/udev/udev.rules"
|
||||
# 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"
|
||||
|
||||
|
@ -141,7 +141,7 @@ static struct perm_device *find_perm(char *name)
|
||||
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 */
|
||||
|
||||
@ -735,7 +735,7 @@ done:
|
||||
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);
|
||||
}
|
||||
|
18
udev-add.c
18
udev-add.c
@ -155,29 +155,29 @@ static int create_node(struct udevice *dev)
|
||||
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;
|
||||
}
|
||||
@ -192,7 +192,7 @@ static int create_node(struct udevice *dev)
|
||||
}
|
||||
|
||||
/* create symlink if requested */
|
||||
if (*dev->symlink) {
|
||||
if (dev->symlink[0]) {
|
||||
symlinks = dev->symlink;
|
||||
while (1) {
|
||||
linkname = strsep(&symlinks, " ");
|
||||
|
18
udev.8
18
udev.8
@ -98,6 +98,16 @@ This is the location of the udev permission file. The default value for this is
|
||||
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:
|
||||
@ -118,6 +128,14 @@ udev_permissions="/etc/udev/udev.permissions"
|
||||
# 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
|
||||
|
3
udev.h
3
udev.h
@ -31,6 +31,7 @@
|
||||
#define NAME_SIZE 100
|
||||
#define OWNER_SIZE 30
|
||||
#define GROUP_SIZE 30
|
||||
#define MODE_SIZE 8
|
||||
|
||||
struct udevice {
|
||||
char name[NAME_SIZE];
|
||||
@ -67,7 +68,7 @@ extern char udev_db_filename[PATH_MAX+NAME_MAX];
|
||||
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];
|
||||
|
||||
|
@ -45,7 +45,7 @@ char udev_db_filename[PATH_MAX+NAME_MAX];
|
||||
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];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user