From owner-freebsd-usb@FreeBSD.ORG Tue Jan 6 19:10:20 2009 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 602CA1065673; Tue, 6 Jan 2009 19:10:20 +0000 (UTC) (envelope-from yanefbsd@gmail.com) Received: from ey-out-2122.google.com (ey-out-2122.google.com [74.125.78.27]) by mx1.freebsd.org (Postfix) with ESMTP id B5F688FC1A; Tue, 6 Jan 2009 19:10:19 +0000 (UTC) (envelope-from yanefbsd@gmail.com) Received: by ey-out-2122.google.com with SMTP id d26so868532eyd.7 for ; Tue, 06 Jan 2009 11:10:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=9zyJ5EA5i6K5yPJ5ItOToduyfR0D9t/7fFMmapGr9SU=; b=TNd+VwOMNjbdMAlFNZIhr1uMenVjGC1B84Rl88c7jWlxQZrBD2nPDLB/iDW4Kq04Ck Pjar7OuAzpW2yVzqlM/JD5oS8ZZ7Er3d5g1+9I91gcF4nVn2MFBDVVSrJglPWLZJhOkw P30kbjBCraZgCDpDaRRQ9qf07p+zRQQz2pLBk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=qKrGR3dJt3q/J8j/Jhi2fKowh0w0JPJCmYcbjQiAJxHkhFap2uOUn95B8yGLIIcZS7 Q6+X95ku7PfVUnyji+3b1YcnkT5KGHGx1p9SjlqrFwpoP/YLoCA6ftcXpmMbGmkjKQse dxtfJhcZqILd6Rbob8snWJ0DMdjK2TeDe/XwQ= Received: by 10.66.233.18 with SMTP id f18mr383295ugh.28.1231269018363; Tue, 06 Jan 2009 11:10:18 -0800 (PST) Received: by 10.67.88.9 with HTTP; Tue, 6 Jan 2009 11:10:18 -0800 (PST) Message-ID: <7d6fde3d0901061110r79333a07jf4eb134224a94747@mail.gmail.com> Date: Tue, 6 Jan 2009 11:10:18 -0800 From: "Garrett Cooper" To: "Hans Petter Selasky" In-Reply-To: <200901061932.54448.hselasky@c2i.net> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <200812311256.mBVCuLT9096976@freefall.freebsd.org> <200901030135.11461.hselasky@c2i.net> <495FAFDD.2050206@vwsoft.com> <200901061932.54448.hselasky@c2i.net> Cc: Volker , freebsd-bugs@freebsd.org, freebsd-usb@freebsd.org Subject: Re: bin/129963: [newusb] usbconfig(8) fails with misleading error when run as a normal user X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2009 19:10:20 -0000 On Tue, Jan 6, 2009 at 10:32 AM, Hans Petter Selasky wrote: > On Saturday 03 January 2009, Volker wrote: >> On 01/03/09 01:35, Hans Petter Selasky wrote: >> > On Wednesday 31 December 2008, vwe@freebsd.org wrote: >> >> Synopsis: [newusb] usbconfig(8) fails with misleading error when run as >> >> a normal user >> >> >> >> Responsible-Changed-From-To: freebsd-bugs->freebsd-usb >> >> Responsible-Changed-By: vwe >> >> Responsible-Changed-When: Wed Dec 31 12:55:52 UTC 2008 >> >> Responsible-Changed-Why: >> >> reassign >> >> >> >> http://www.freebsd.org/cgi/query-pr.cgi?pr=129963 >> > >> > Hi, >> > >> > "usbconfig" will only show USB devices which the user has access to. >> > >> > What should be the correct display message when no devices are accessible >> > due to innsufficient permissions? >> > >> > --HPS >> >> Hans, >> >> what about "access denied" or "insufficient privileges"? >> >> Someone might have a better idea but everything should be better than >> silently refusing to do anything. >> >> Volker > > Is this Ok: > > http://perforce.freebsd.org/chv.cgi?CH=155731 > > --HPS Eh? I still think that strerror or something along those lines would be more helpful. You could also do if (getuid() != 0) { errx(1, "Cluebat -- you might not be able to read the usb devices if you're not root"); } or... struct stat usb_s; int fd = open(..., O_RDONLY /* blah, blah... */); if (fd == -1) { errx(1, "Does the file -- %s -- exist?", file); } if (fstat(fd, &usb_s) == -1) { errx(1, "Couldn't stat the file: %s", file); } if (!S_IRUSR(usb_s.st_mode) && !S_IRGRP(usb_s.st_mode) && !S_IROTH(usb_s.st_mode)) { errx(1, "File not readable (do you have read permissions?)"); } /* Continue on merry way reading devices; maybe use strerror(3) for more intuitive error messages? */ Thoughts? -Garrett