Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Apr 2007 04:22:34 GMT
From:      sergio lenzi<lenzi.sergio@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   misc/112019: error when adding user inside the gnome desktop using
Message-ID:  <200704230422.l3N4MYk9042962@www.freebsd.org>
Resent-Message-ID: <200704230430.l3N4U3I0054285@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200704230422.l3N4MYk9042962>