From owner-freebsd-bugs@FreeBSD.ORG Wed Mar 26 19:50:14 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B6F8A37B404 for ; Wed, 26 Mar 2003 19:50:14 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9208543F3F for ; Wed, 26 Mar 2003 19:50:12 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id h2R3oCNS012613 for ; Wed, 26 Mar 2003 19:50:12 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id h2R3oCnI012612; Wed, 26 Mar 2003 19:50:12 -0800 (PST) Resent-Date: Wed, 26 Mar 2003 19:50:12 -0800 (PST) Resent-Message-Id: <200303270350.h2R3oCnI012612@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, System Admin Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 357D937B404 for ; Wed, 26 Mar 2003 19:49:08 -0800 (PST) Received: from pursued-with.net (adsl-66-125-9-242.dsl.sndg02.pacbell.net [66.125.9.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id 54DBA43FAF for ; Wed, 26 Mar 2003 19:49:07 -0800 (PST) (envelope-from KeS@pursued-with.net) Received: from babelfish.pursued-with.net (localhost [127.0.0.1]) by pursued-with.net (8.12.6/8.12.8) with ESMTP id h2R3n6s7065608; Wed, 26 Mar 2003 19:49:06 -0800 (PST) (envelope-from KeS@babelfish.pursued-with.net) Received: (from root@localhost)h2R3n4sj065607; Wed, 26 Mar 2003 19:49:04 -0800 (PST) (envelope-from KeS) Message-Id: <200303270349.h2R3n4sj065607@babelfish.pursued-with.net> Date: Wed, 26 Mar 2003 19:49:04 -0800 (PST) From: System Admin To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 X-Spam-Status: No, hits=-0.8 required=5.0 tests=RESENT_TO version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) cc: kevin_stevens@pursued-with.net Subject: bin/50331: Changing uid with pw causes duplicate username/uid pairs. X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: System Admin List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Mar 2003 03:50:16 -0000 >Number: 50331 >Category: bin >Synopsis: Changing uid with pw causes duplicate username/uid pairs. >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Mar 26 19:50:12 PST 2003 >Closed-Date: >Last-Modified: >Originator: kevin_stevens@pursued-with.net >Release: FreeBSD 4.7-RELEASE i386 >Organization: Sporadic >Environment: Duplicated in various x86 systems on both 4.7 and 5.0, probably others. System: FreeBSD babelfish 4.7-RELEASE FreeBSD 4.7-RELEASE #0: Wed Oct 9 15:08:34 GMT 2002 root@builder.freebsdmall.com:/usr/obj/usr/src/sys/GENERIC i386 >Description: After changing a user's uid with the pw command, files owned by the original uid still show the previous username. Running id -P on both the new and old uids reports the same username, when the old uid should no longer even exist. Running pwd_mkdb /etc/master.passwd manually resolves the errors. A suggestion from the freebsd-questions list when I posted this problem was: pw may be too smart for its own good. I bet it calls "pwd_mkdb -u" to only update a single user from /etc/passwd. The problem is when the uid changes, pwd_mkdb will insert a new record into /etc/pwd.sb and spwd.db, but it doesn't know about the previous uid, so that stays in the db. >How-To-Repeat: % sudo pw user add -n fred -u 1010 -m % id -P fred fred:*:1010:1010::0:0:User &:/home/fred:/bin/sh % ls -lad /home/fred drwxr-xr-x 2 fred fred 512 Mar 26 08:01 /home/fred/ % sudo pw user mod fred -u 1005 % id -P fred fred:*:1005:1010::0:0:User &:/home/fred:/bin/sh % ls -lad /home/fred drwxr-xr-x 2 fred fred 512 Mar 26 08:01 /home/fred/ % id -P 1005 fred:*:1005:1010::0:0:User &:/home/fred:/bin/sh % id -P 1010 fred:*:1010:1010::0:0:User &:/home/fred:/bin/sh % sudo grep 1010 /etc/master.passwd fred:*:1005:1010::0:0:User &:/home/fred:/bin/sh However, running pwd_mkdb(8) seems to cure the problem very effectively: % sudo pwd_mkdb /etc/master.passwd % id -P fred fred:*:1005:1010::0:0:User &:/home/fred:/bin/sh % id -P 1005 fred:*:1005:1010::0:0:User &:/home/fred:/bin/sh % id -P 1010 id: 1010: no such user % ls -lad /home/fred drwxr-xr-x 2 1010 fred 512 Mar 26 08:01 /home/fred/ >Fix: As mentioned, manually running pwd_mkdb seems to resolve the problem. >Release-Note: >Audit-Trail: >Unformatted: