On Fri, Jan 25, 2013 at 07:29:44AM -0500, Gene Czarcinski wrote: > On 01/25/2013 06:55 AM, Roman Mamedov wrote: > >On Fri, 25 Jan 2013 06:32:30 -0500 > >Gene Czarcinski <g...@czarc.net> wrote: > > > >>This patch hits a lot of files but adds little code. It > >>could be considered a bugfix, Currently, when one of the > >>btrfs user-space programs is executed by a regular user, > >>the result if oftem a number of strange error messages > >>which do not indicate the real problem. This patch changes > >>that situation. > >> > >>A test is performed as to whether the program is running > >>as root. If it is not, issue an error message and exit. > >>Signed-off-by: Gene Czarcinski <g...@czarc.net> > >$ ls -la /dev/sda > >brw-rw---T 1 root disk 8, 0 Jan 15 12:11 /dev/sda > > > >The user does not have to be root, they can be a member of the group "disk" > >to > >manage this device. > > > >Also some or all of the tools accept not just a block device, but also a > >regular file as their parameter. > > > >Wouldn't it be better to check whether or not the running user has > >*write access* to the device or file to be operated on, before failing? > I knew there would be corner cases where root was not required for > execution. After all, I do not need to be root to execute "btrfs > --version". Now, is it worth the effort to determine the corner > cases and do you have a proposed solution as to determining what > privileges are needed when? I can understand when it could be a > regular file but is it all that common for users to be part of group > disk?
Don't try to check all the possible success conditions beforehand -- that's what leads to websites that fail to work because your browser is not IE, but work perfectly when you change your user-agent string to "MSIE". This is highly frustrating for users. Instead, try whatever it is you were trying to do (open a file, send an ioctl), and determine, as well as you can, why it failed by looking at the error codes that you get back, and report that. "Permission denied" -> means you don't have permissions -> you need to be root, or have yourself put in the disk group, or get the disk-management-capability. Let the user work out which of those solutions they need, rather than forcing them to use the one you thought of. Hugo. > If there is a case where it is difficult to figure out if root is > needed, then my solution would be to turn it into a warning message > and remove the exit for that specific program. > > However, I believe the real answer is to use sudo. > > Gene > > > >>--- > >> btrfs-corrupt-block.c | 5 +++++ > >> btrfs-image.c | 5 +++++ > >> btrfs-map-logical.c | 5 +++++ > >> btrfs-select-super.c | 5 +++++ > >> btrfs-show-super.c | 5 +++++ > >> btrfs-show.c | 5 +++++ > >> btrfs-vol.c | 5 +++++ > >> btrfs-zero-log.c | 5 +++++ > >> btrfs.c | 6 ++++++ > >> btrfsck.c | 5 +++++ > >> btrfsctl.c | 5 +++++ > >> btrfstune.c | 5 +++++ > >> calc-size.c | 5 +++++ > >> convert.c | 6 ++++++ > >> debug-tree.c | 5 +++++ > >> dir-test.c | 5 +++++ > >> find-root.c | 5 +++++ > >> ioctl-test.c | 6 ++++++ > >> mkfs.c | 5 +++++ > >> quick-test.c | 6 ++++++ > >> restore.c | 5 +++++ > >> 21 files changed, 109 insertions(+) > -- === Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk === PGP key: 515C238D from wwwkeys.eu.pgp.net or http://www.carfax.org.uk --- Quidquid latine dictum sit, altum videtur. ---
signature.asc
Description: Digital signature