misc/112019: error when adding user inside the gnome desktop using
sergio lenzi
lenzi.sergio at gmail.com
Mon Apr 23 04:30:03 UTC 2007
>Number: 112019
>Category: misc
>Synopsis: error when adding user inside the gnome desktop using
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Apr 23 04:30:02 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: sergio lenzi
>Release: 6.2 release
>Organization:
k1 sistemas
>Environment:
FreeBSD lenzinote.cwb.casa 6.2-RELEASE FreeBSD 6.2-RELEASE #1: Thu Apr 5 17:05:10 BRT 2007 lzt at lenzinote.cwb.casa:/usr/src/sys/i386/compile/lenzinote i386
>Description:
the system-tools-backends ports incorrect set the permission and hashed password (not md5 type)... when adding a user. as the perl code incorrect issues the command without the -m and -h (not -H) to add a new user and set its home directory.
A fix is needed in both gnome-system-tools and system-tools-backends to correct the problem
>How-To-Repeat:
just add a user using the gnome users-admin command
>Fix:
apply the patches as it fix the call to liboobs in gnome-system-tools and
fix the pw adduser in system-tools backends....
Patch attached with submission follows:
diff -ruN --exclude=CVS /usr/ports/sysutils/gnome-system-tools/Makefile /fileserver/ports/sysutils/gnome-system-tools/Makefile
--- /usr/ports/sysutils/gnome-system-tools/Makefile Tue Apr 10 14:05:02 2007
+++ /fileserver/ports/sysutils/gnome-system-tools/Makefile Sun Apr 22 23:38:10 2007
@@ -7,6 +7,7 @@
PORTNAME= gnome-system-tools
PORTVERSION= 2.18.1
+PORTREVISION= 1
CATEGORIES= sysutils gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/gnome-system-tools/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
diff -ruN --exclude=CVS /usr/ports/sysutils/gnome-system-tools/files/patch-user-settings.c /fileserver/ports/sysutils/gnome-system-tools/files/patch-user-settings.c
--- /usr/ports/sysutils/gnome-system-tools/files/patch-user-settings.c Wed Dec 31 21:00:00 1969
+++ /fileserver/ports/sysutils/gnome-system-tools/files/patch-user-settings.c Sun Apr 22 23:35:05 2007
@@ -0,0 +1,15 @@
+--- src/users/user-settings.c.orig Sun Apr 22 23:32:58 2007
++++ src/users/user-settings.c Sun Apr 22 23:34:18 2007
+@@ -632,10 +632,10 @@
+ password_changed = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "changed"));
+
+ if (password_changed)
+- oobs_user_set_password (user, gtk_entry_get_text (GTK_ENTRY (widget)));
++ oobs_user_set_crypted_password (user, gtk_entry_get_text (GTK_ENTRY (widget)));
+ } else {
+ widget = gst_dialog_get_widget (tool->main_dialog, "user_settings_random_passwd");
+- oobs_user_set_password (user, gtk_entry_get_text (GTK_ENTRY (widget)));
++ oobs_user_set_crypted_password (user, gtk_entry_get_text (GTK_ENTRY (widget)));
+ }
+
+ group = get_main_group (oobs_user_get_login_name (user));
diff -ruN --exclude=CVS /usr/ports/sysutils/system-tools-backends/Makefile /fileserver/ports/sysutils/system-tools-backends/Makefile
--- /usr/ports/sysutils/system-tools-backends/Makefile Fri Apr 13 01:00:18 2007
+++ /fileserver/ports/sysutils/system-tools-backends/Makefile Sun Apr 22 22:02:18 2007
@@ -8,7 +8,7 @@
PORTNAME= system-tools-backends
PORTVERSION= 2.2.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= sysutils gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
diff -ruN --exclude=CVS /usr/ports/sysutils/system-tools-backends/files/patch-Users /fileserver/ports/sysutils/system-tools-backends/files/patch-Users
--- /usr/ports/sysutils/system-tools-backends/files/patch-Users Wed Dec 31 21:00:00 1969
+++ /fileserver/ports/sysutils/system-tools-backends/files/patch-Users Sun Apr 22 23:06:00 2007
@@ -0,0 +1,47 @@
+--- Users/Users.pm.orig Thu Oct 5 09:27:21 2006
++++ Users/Users.pm Sun Apr 22 23:05:41 2007
+@@ -458,7 +458,7 @@
+
+ if ($Utils::Backend::tool{"system"} eq "FreeBSD")
+ {
+- $command = "$cmd_pw userdel -n \'" . $$user[$LOGIN] . "\' ";
++ $command = "$cmd_pw userdel -n \'" . $$user[$LOGIN] . "\' -r ";
+ }
+ else
+ {
+@@ -538,10 +538,10 @@
+ {
+ my $pwdpipe;
+ my $home;
++ my $user;
+
+- # FreeBSD doesn't create the home directory
+ $home = $$user[$HOME];
+- &Utils::File::run ("$tool_mkdir -p $home");
++ $user = $$user[$LOGIN];
+
+ $command = "$cmd_pw useradd " .
+ " -n \'" . $$user[$LOGIN] . "\'" .
+@@ -549,11 +549,12 @@
+ " -d \'" . $$user[$HOME] . "\'" .
+ " -g \'" . $$user[$GID] . "\'" .
+ " -s \'" . $$user[$SHELL] . "\'" .
+- " -H 0"; # pw(8) reads password from STDIN
++ " -m -h 0"; # pw(8) reads password from STDIN
+
+ $pwdpipe = &Utils::File::run_pipe_write ($command);
+ print $pwdpipe $$user[$PASSWD];
+ &Utils::File::close_file ($pwdpipe);
++ &Utils::File::run ("chown -R $user $home");
+ }
+ elsif ($Utils::Backend::tool{"system"} eq "SunOS")
+ {
+@@ -629,7 +630,7 @@
+ " -d \'" . $$new_user[$HOME] . "\'" .
+ " -g \'" . $$new_user[$GID] . "\'" .
+ " -s \'" . $$new_user[$SHELL] . "\'" .
+- " -H 0"; # pw(8) reads password from STDIN
++ " -h 0"; # pw(8) reads password from STDIN
+
+ $pwdpipe = &Utils::File::run_pipe_write ($command);
+ print $pwdpipe $$new_user[$PASSWD];
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list