public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Linux Input <linux-input@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Jason Wessel <jason.wessel@windriver.com>
Subject: Re: [RFC] Input: implement sysrq as an input handler
Date: Fri, 19 Mar 2010 23:53:29 -0300	[thread overview]
Message-ID: <20100320025329.GA2468@khazad-dum.debian.net> (raw)
In-Reply-To: <20100319180314.GB12143@core.coreip.homeip.net>

On Fri, 19 Mar 2010, Dmitry Torokhov wrote:
> On Fri, Mar 19, 2010 at 01:06:41PM -0300, Henrique de Moraes Holschuh wrote:
> > On Thu, 18 Mar 2010, Dmitry Torokhov wrote:
> > > On Thu, Mar 18, 2010 at 09:00:43PM -0300, Henrique de Moraes Holschuh wrote:
> > > > Any chance of the user being able to avoid the SysRQ events getting to the
> > > > handle, e.g. by opening the input device in exclusive mode or something like
> > > > that?
> > > 
> > > Yes, it is a possible to suppress SysRq by grabbing an input device.
> > > This possibility exisst with the current implementation too though -
> > > after all legacy keyboard driver implemented as an input handler as
> > > well.
> > > 
> > > ... or am I answering a question different from the one you asked? ;)
> > 
> > No, that's exactly what I wanted to know.
> > 
> > What about SAK?  That thing *has* to be untrappable.
> 
> On what level untrapable? And what exactly is SAK? There is not a
> special key, at least not in general case, it is an action assigned to a
> key comboi.  Root can "trap" legacy keyboard SAK with loadkeys; it can
> also disable sysrq, unload modules and do other nasty things. But
> ordinary users can not trap it.

root isn't really a problem from a security PoV (well, maybe it is if the
operation isn't constrained by capabilities).  SAK can't protect you from
root.

_Normal_ userspace behaviour running a root process is a problem if it
blocks these handles, though, both for SAK and regular SysRQ.  I have lost
count of how many times SysRQ+SUB delivered me from filesystem corruption
and very annoying problems, both at home and at work.

We are sort of trusting userspace to not break the one way out from severly
hung systems while doing its normal day-to-day operations (as opposed to
deliberately disabling SysRQ or remapping SAK, etc).

> > Even for the SysRQ debug events, I'd feel better if we could have a class of
> > system input handlers that cannot be suppressed to use for these things.
> 
> That would require moving "these things", including their state
> machines, into input core otherwise it would not know what events can be
> trappable and which should be passed through. Or we should get rid of
> EVIOCGRAB.

Maybe we can add a flags field to input devices and input handlers, to be
able to have the core behave differently when needed, without moving
everything into the input core?  Would that work, or would it need too much
churn in the core?

> Given the fact that event devices are accessible only to root I think
> that current behavior is acceptable.

I don't trust the class of programs that would want to open input devices as
root in exclusive mode.  Desktop fluff might decide to use EVIOCGRAB or open
input devices in exclusive mode for some reason, and break SysRQ.  I'd like
to preserve the hability of userspace to EVIOCGRAB if it feels there's a
need to, while preserving the kernel's hability to NEVER ignore SysRQ and
SAK while enabled.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh

  reply	other threads:[~2010-03-20  2:53 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-17  6:19 [RFC] Input: implement sysrq as an input handler Dmitry Torokhov
2010-03-19  0:00 ` Henrique de Moraes Holschuh
2010-03-19  0:09   ` Dmitry Torokhov
2010-03-19 16:06     ` Henrique de Moraes Holschuh
2010-03-19 18:03       ` Dmitry Torokhov
2010-03-20  2:53         ` Henrique de Moraes Holschuh [this message]
2010-03-22  4:59           ` Dmitry Torokhov
2010-04-01 13:34             ` Pavel Machek
2010-04-01 15:42               ` Dmitry Torokhov
2010-04-04 13:27                 ` Pavel Machek
2010-04-16  5:33                   ` Dmitry Torokhov
2010-03-19  0:13 ` Randy Dunlap
2010-03-19  0:30   ` Dmitry Torokhov

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=20100320025329.GA2468@khazad-dum.debian.net \
    --to=hmh@hmh.eng.br \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jason.wessel@windriver.com \
    --cc=linux-input@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox