All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anssi Hannula <anssi.hannula@gmail.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@atrey.karlin.mff.cuni.cz, linux-kernel@vger.kernel.org
Subject: Re: input/eventX permissions, force feedback
Date: Tue, 18 Jul 2006 17:31:20 +0300	[thread overview]
Message-ID: <44BCF0B8.6070102@gmail.com> (raw)
In-Reply-To: <d120d5000607180714s2810d013t8e22544b52da6bf1@mail.gmail.com>

Dmitry Torokhov wrote:
> On 7/18/06, Anssi Hannula <anssi.hannula@gmail.com> wrote:
> 
>> Dmitry Torokhov wrote:
>> > Hi Anssi,
>> >
>> > On 7/18/06, Anssi Hannula <anssi.hannula@gmail.com> wrote:
>> >
>> >> Currently most distributions have /dev/input/event* strictly as 0600
>> >> root:root or 0640 root:root. The user logged in will not have
>> rights to
>> >> the device, unlike /dev/input/js*, as he could read all passwords from
>> >> the keyboard device.
>> >>
>> >> This is a problem, because /dev/input/event* is used for force
>> feedback
>> >> and should therefore be user-accessible.
>> >>
>> >> I can think of the following solutions to this problem:
>> >>
>> >> 1. Some creative udev rule to chmod /dev/input/event* less strictly
>> when
>> >> it has a /dev/input/js* and is thus a gaming device.
>> >>
>> >> 2. Some creative udev rule to chmod /dev/input/event* more strictly
>> when
>> >> it is a keyboard.
>> >>
>> >> 3. Have another force feedback interface also in /dev/input/js*.
>> >>
>> >
>> > You can do it in udev looking either at MODALIAS or at EV and ABS
>> > environment variables. I think it is pretty safe to say that a device
>> > with EV_ABS, EV_FF, ABS_X and ABS_Y is a force-feedback joystick-type
>> > device and not a keyboard.
>>
>> Okay, thanks. But I think it'd be more consistant if all devices that
>> have js* entries would have the relaxed perms in event*. Looking at
>> joydev.c, that seems to be devices where EV_ABS && (ABS_X || ABS_WHEEL
>> || ABS_THROTTLE) && !(EV_KEY && BTN_TOUCH).
>>
> 
> OK, you can do that too.
> 
>> There's another problem, too:
>> Some distros (Fedora, Mandriva...) don't use groups with /dev/input/jsX,
>> they use pam_console to chmod the device to the console owner.
>> Unfortunately, it allows to specify the permissions based on device file
>> names only.
>>
>> To solve this problem, I see two solutions:
>>
>> 1. Have the pam_console_apply program extended so that it can perform
>> more complex matches (but what kind of matches would those be?).
>>
>> 2. Have udev create symlinks like the following case:
>> /dev/input/event3
>> /dev/input/js0
>> /dev/input/jsevent0 => event3
>> Then pam_console_apply could match jsevent[0-9]* and it would follow the
>> symlink, thus chowning event3 to the wanted user.
>>
>> Unfortunately neither look too good to me. Do you have any other ideas?
>>
> 
> I think this is really up to particular destribution to decide how
> they want to handle security/granting access. One could even imagine
> writing SELinux policies...

Yes, it is. I just asked if you had any better idea or if you were
strongly opposed to the solutions I proposed, as I want to make a
working solution for my distribution (Mandriva).

>> > Another solution would be to relax permissions if user is also console
>> > owner (home box installation).
>>
>> I thought of that too, but I thought it's too big a security risk, as
>> it's not guaranteed that somebody else won't temporarily login on
>> another terminal.
>>
> That is what you are doing with pam_console_apply, don't you?
> 

Yes, but afaics there are currently no device privileges given to the
console user which would compromise password security. Providing eventX
would do that.

-- 
Anssi Hannula


  reply	other threads:[~2006-07-18 14:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-18  9:42 input/eventX permissions, force feedback Anssi Hannula
2006-07-18 12:20 ` Dmitry Torokhov
2006-07-18 14:02   ` Anssi Hannula
2006-07-18 14:14     ` Dmitry Torokhov
2006-07-18 14:31       ` Anssi Hannula [this message]
2006-07-18 16:50   ` Andrey Borzenkov
2006-07-18 17:07     ` Anssi Hannula

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44BCF0B8.6070102@gmail.com \
    --to=anssi.hannula@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=linux-input@atrey.karlin.mff.cuni.cz \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.