From owner-freebsd-bugs@FreeBSD.ORG Fri Dec 7 23:10:03 2007 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 641A216A419 for ; Fri, 7 Dec 2007 23:10:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 3CAA713C46E for ; Fri, 7 Dec 2007 23:10:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id lB7NA2Lu099432 for ; Fri, 7 Dec 2007 23:10:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id lB7NA2hw099431; Fri, 7 Dec 2007 23:10:02 GMT (envelope-from gnats) Resent-Date: Fri, 7 Dec 2007 23:10:02 GMT Resent-Message-Id: <200712072310.lB7NA2hw099431@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, Maciej Kazulak Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BCE4716A41A for ; Fri, 7 Dec 2007 23:07:06 +0000 (UTC) (envelope-from kazulakm@vol2.iem.pw.edu.pl) Received: from vol2.iem.pw.edu.pl (vol2.iem.pw.edu.pl [194.29.146.33]) by mx1.freebsd.org (Postfix) with ESMTP id 7B38B13C469 for ; Fri, 7 Dec 2007 23:07:06 +0000 (UTC) (envelope-from kazulakm@vol2.iem.pw.edu.pl) Received: by vol2.iem.pw.edu.pl (Postfix, from userid 5382) id BF40FA666B2; Fri, 7 Dec 2007 23:50:15 +0100 (CET) Message-Id: <20071207225015.BF40FA666B2@vol2.iem.pw.edu.pl> Date: Fri, 7 Dec 2007 23:50:15 +0100 (CET) From: Maciej Kazulak To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/118488: pw usershow doesn't print password hashes when run as root X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Maciej Kazulak List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Dec 2007 23:10:03 -0000 >Number: 118488 >Category: bin >Synopsis: pw usershow doesn't print password hashes when run as root >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: Fri Dec 07 23:10:02 UTC 2007 >Closed-Date: >Last-Modified: >Originator: Maciej Kazulak >Release: FreeBSD 8.0-CURRENT amd64 >Organization: >Environment: System: FreeBSD vol2 8.0-CURRENT FreeBSD 8.0-CURRENT #4: Mon Nov 19 21:24:34 CET 2007 ato@vol2:/tmp/obj/usr/src/sys/VOLT64 amd64 >Description: $ sudo pw usershow test test:*:1002:1002::0:0:test:/home/test:/bin/sh Even when run as root pw won't print password hashes. This is due to the way fmtpwentry() is called inside print_user(). fmtpwentry(buf, pwd, v7 ? PWF_PASSWD : PWF_STANDARD); For the hash to be printed the third argument (type) must be PWF_MASTER. >From pwupd.h: enum pwdfmttype { PWF_STANDARD, /* MASTER format but with '*' as password */ PWF_PASSWD, /* V7 format */ PWF_GROUP = PWF_PASSWD, PWF_MASTER /* MASTER format with password */ }; >How-To-Repeat: >Fix: Make print_user() pass PWF_MASTER to fmtpwentry() if -7 was not given on the command line and euid == 0. --- patch.diff begins here --- --- /usr/src/usr.sbin/pw/pw_user.c.orig 2007-12-07 01:04:47.000000000 +0100 +++ /usr/src/usr.sbin/pw/pw_user.c 2007-12-07 02:52:40.000000000 +0100 @@ -1146,7 +1146,7 @@ if (!pretty) { char buf[_UC_MAXLINE]; - fmtpwentry(buf, pwd, v7 ? PWF_PASSWD : PWF_STANDARD); + fmtpwentry(buf, pwd, v7 ? PWF_PASSWD : (geteuid() ? PWF_STANDARD : PWF_MASTER)); fputs(buf, stdout); } else { int j; --- patch.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: