Re: VT_PROCESS, VT_LOCKSWITCH capabilities
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2007-08-01 04:49:54
On Wed, 01 Aug 2007 00:22:38 +0200 Frank Benkstein [off-list ref] wrote:
I wonder why there are different permissions needed for VT_PROCESS (access to the current virtual console) and VT_LOCKSWITCH (CAP_SYS_TTY_CONFIG). The first one lets the calling process decide if console switching is allowed, the second one simply disables it. If a program wants to forbid console switching the only technical difference I can see is that switching is automatically reenabled when the program exits when using VT_PROCESS. When using VT_LOCKSWITCH it must be manually reenabled. When the program uses the first method and disables terminal signals and SysRQ is disabled, too, I see no practical difference between the two.
It'd take some kernel archaeology to work out how things got the way they are. Perhaps the issue with VT_LOCKSWITCH is that its effects will persist after the user has logged out? So user A is effectively altering user B's console, hence suitable capabilities are needed? Is the current code actually causing any observable problem?