From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hanna Linder Date: Sat, 17 Jan 2004 01:10:15 +0000 Subject: Re: [PATCH] set default owner/group in db. Message-Id: <42320000.1074301815@w-hlinder> List-Id: References: <32230000.1074291692@w-hlinder> In-Reply-To: <32230000.1074291692@w-hlinder> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org --On Friday, January 16, 2004 02:51:00 PM -0800 Greg KH wrote: > On Fri, Jan 16, 2004 at 02:21:32PM -0800, Hanna Linder wrote: >> >> This patch fixes a bug where the udev database stored empty strings >> for Owner and Group if they were default. This patch stores the default >> value into the database if not set otherwise. See example output: >> >> >> crw------- 1 root root 4, 65 Jan 16 11:13 ttyS1 >> >> P: /class/tty/ttyS1 >> N: ttyS1 >> S: >> O: root >> G: root >> >> This is a bit of a hack. However, until udev supports setting the >> o/g values they will be root/root anyway so the database might as >> well reflect the truth instead of empty strings. > > Hm, in thinking about this some more, how about just adding support for > a default owner and default group to the main udev.config file? Then Good idea. This patch will now allow the admin to either set the default owner and group in /etc/udev/udev.conf or it will default to root/root. Greg, you can change udev.conf to set default_owner and default_group now. Hanna ---- === namedev.c 1.93 vs edited ==--- 1.93/namedev.c Fri Jan 16 15:17:19 2004 +++ edited/namedev.c Fri Jan 16 18:17:57 2004 @@ -151,6 +151,22 @@ return mode; } +static char * get_default_owner(void) +{ + if (strlen(default_owner_str) = 0) { + strncpy(default_owner_str, "root", OWNER_SIZE); + } + return default_owner_str; +} + +static char * get_default_group(void) +{ + if (strlen(default_group_str) = 0) { + strncpy(default_group_str, "root", GROUP_SIZE); + } + return default_group_str; +} + static void apply_format(struct udevice *udev, unsigned char *string) { char temp[NAME_SIZE]; @@ -720,9 +736,8 @@ } else { /* no matching perms found :( */ udev->mode = get_default_mode(class_dev); - /* HACK until udev sets the owner and group */ - strncpy(udev->owner, "root", sizeof(udev->owner)); - strncpy(udev->group, "root", sizeof(udev->group)); + strncpy(udev->owner, get_default_owner(), OWNER_SIZE); + strncpy(udev->group, get_default_group(), GROUP_SIZE); } dbg("name, '%s' is going to have owner='%s', group='%s', mode = %#o", udev->name, udev->owner, udev->group, udev->mode); === udev.h 1.32 vs edited ==--- 1.32/udev.h Thu Jan 15 07:22:25 2004 +++ edited/udev.h Fri Jan 16 18:15:57 2004 @@ -68,5 +68,7 @@ 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_owner_str[OWNER_SIZE]; +extern char default_group_str[GROUP_SIZE]; #endif === udev_config.c 1.4 vs edited ==--- 1.4/udev_config.c Thu Jan 15 07:22:25 2004 +++ edited/udev_config.c Fri Jan 16 18:10:13 2004 @@ -46,6 +46,8 @@ char udev_rules_filename[PATH_MAX+NAME_MAX]; char udev_config_filename[PATH_MAX+NAME_MAX]; char default_mode_str[NAME_MAX]; +char default_owner_str[OWNER_SIZE]; +char default_group_str[GROUP_SIZE]; static void init_variables(void) @@ -117,6 +119,8 @@ set_var("udev_rules", udev_rules_filename); set_var("udev_permissions", udev_permissions_filename); set_var("default_mode", default_mode_str); + set_var("default_owner", default_owner_str); + set_var("default_group", default_group_str); } dbg_parse("%s:%d:%Zd: error parsing '%s'", udev_config_filename, lineno, temp - line, temp); ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel