From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Mon, 18 Oct 2004 19:10:00 +0000 Subject: $local user Message-Id: <20041018191000.GD7487@vrfy.org> MIME-Version: 1 Content-Type: multipart/mixed; boundary="H+4ONPRPur6+Ovig" List-Id: To: linux-hotplug@vger.kernel.org --H+4ONPRPur6+Ovig Content-Type: text/plain; charset=us-ascii Content-Disposition: inline We once implemented the devfsd feature to set the owner of a device node to the "local" user. This was before we had the dev.d/ scripts. We discussed a similar issue with D-BUS recently and this should be better handled depending on the distributions way to do such a thing. I'm for removing this here as this can be easily covered by a dev.d/ script. Here is the patch if nobody objects :) Thanks, Kay --H+4ONPRPur6+Ovig Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="udev-local_user-01.patch" ===== klibc_fixups.c 1.11 vs edited ===== --- 1.11/klibc_fixups.c 2004-09-05 11:41:34 +02:00 +++ edited/klibc_fixups.c 2004-10-18 20:55:31 +02:00 @@ -125,38 +125,4 @@ return &gr; } - -int ufd = -1; - -void setutent() -{ - if (ufd < 0) - ufd = open(UTMP_FILE, O_RDONLY); - fcntl(ufd, F_SETFD, FD_CLOEXEC); - lseek(ufd, 0, SEEK_SET); -} - -void endutent() { - if (ufd < 0) - return; - close(ufd); - ufd = -1; -} - -struct utmp *getutent(void) -{ - static struct utmp utmp; - int retval; - - if (ufd < 0) { - setutent(); - if (ufd < 0) - return NULL; - } - retval = read(ufd, &utmp, sizeof(struct utmp)); - if (retval < 1) - return NULL; - return &utmp; -} - #endif ===== klibc_fixups.h 1.8 vs edited ===== --- 1.8/klibc_fixups.h 2004-05-21 06:17:58 +02:00 +++ edited/klibc_fixups.h 2004-10-18 20:55:40 +02:00 @@ -62,10 +62,5 @@ char __unused[20]; /* reserved for future use */ }; -struct utmp *getutent(void); -void setutent(void); -void endutent(void); - - #endif /* KLIBC_FIXUPS_H */ #endif /* __KLIBC__ */ ===== udev.8.in 1.61 vs edited ===== --- 1.61/udev.8.in 2004-10-14 03:14:12 +02:00 +++ edited/udev.8.in 2004-10-18 20:57:42 +02:00 @@ -335,17 +335,6 @@ dsp1:::0666 .fi .P -The value -.I $local -can be used instead of a specific username. In that case, udev will determine -the current local user at the time of device node creation and substitute -that username as the owner of the new device node. This is useful, for -example, to let hot-plugged devices, such as cameras, be owned by the user at -the current console. Note that if no user is currently logged in, or if udev -otherwise fails to determine a current user, the -.I default_owner -value is used in lieu. -.P A number of different fields in the above configuration files support a simple form of shell style pattern matching. It supports the following pattern characters: .TP ===== udev_add.c 1.79 vs edited ===== --- 1.79/udev_add.c 2004-10-18 19:48:33 +02:00 +++ edited/udev_add.c 2004-10-18 20:56:27 +02:00 @@ -48,8 +48,6 @@ #include "udevdb.h" #include "klibc_fixups.h" -#define LOCAL_USER "$local" - #include "selinux.h" /* @@ -155,37 +153,6 @@ return retval; } -/* get the local logged in user */ -static void set_to_local_user(char *user) -{ - struct utmp *u; - time_t recent = 0; - - strfieldcpymax(user, default_owner_str, OWNER_SIZE); - setutent(); - while (1) { - u = getutent(); - if (u == NULL) - break; - - /* is this a user login ? */ - if (u->ut_type != USER_PROCESS) - continue; - - /* is this a local login ? */ - if (strcmp(u->ut_host, "")) - continue; - - if (u->ut_time > recent) { - recent = u->ut_time; - strfieldcpymax(user, u->ut_user, OWNER_SIZE); - dbg("local user is '%s'", user); - break; - } - } - endutent(); -} - static int create_node(struct udevice *udev) { char filename[NAME_SIZE]; @@ -229,8 +196,6 @@ uid = (uid_t) id; else { struct passwd *pw; - if (strncmp(udev->owner, LOCAL_USER, sizeof(LOCAL_USER)) == 0) - set_to_local_user(udev->owner); pw = getpwnam(udev->owner); if (pw == NULL) --H+4ONPRPur6+Ovig-- ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ 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