From: Chris Wright <chrisw@osdl.org>
To: Lee Revell <rlrevell@joe-job.com>
Cc: Andrew Morton <akpm@osdl.org>, Chris Wright <chrisw@osdl.org>,
Jody McIntyre <realtime-lsm@modernduck.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
torbenh@gmx.de, "Jack O'Quin" <joq@io.com>
Subject: Re: [PATCH] Realtime LSM
Date: Fri, 8 Oct 2004 14:45:39 -0700 [thread overview]
Message-ID: <20041008144539.K2357@build.pdx.osdl.net> (raw)
In-Reply-To: <1097269108.1442.53.camel@krustophenia.net>; from rlrevell@joe-job.com on Fri, Oct 08, 2004 at 04:58:29PM -0400
* Lee Revell (rlrevell@joe-job.com) wrote:
> + # sysctl -w security/realtime/any=0
> + # sysctl -w security/realtime/gid=29
> + # sysctl -w security/realtime/mlock=1
> +
I think these should move to sysfs.
> +Jack O'Quin, joq@joq.us
> diff -ruN -X /home/joq/bin/kdiff.exclude linux-2.6.8.1/include/linux/sysctl.h linux-2.6.8.1-rt02/include/linux/sysctl.h
> --- linux-2.6.8.1/include/linux/sysctl.h Sat Aug 14 05:55:33 2004
> +++ linux-2.6.8.1-rt02/include/linux/sysctl.h Sun Oct 3 10:56:16 2004
> @@ -61,7 +61,14 @@
> CTL_DEV=7, /* Devices */
> CTL_BUS=8, /* Busses */
> CTL_ABI=9, /* Binary emulation */
> - CTL_CPU=10 /* CPU stuff (speed scaling, etc) */
> + CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
> + CTL_SECURITY=11 /* Security modules */
> +};
> +
> +/* CTL_SECURITY names: */
> +enum
> +{
> + SECURITY_REALTIME=1 /* Realtime LSM */
> };
Without adding this extra bit.
> diff -ruN -X /home/joq/bin/kdiff.exclude linux-2.6.8.1/security/Kconfig linux-2.6.8.1-rt02/security/Kconfig
> --- linux-2.6.8.1/security/Kconfig Sat Aug 14 05:55:47 2004
> +++ linux-2.6.8.1-rt02/security/Kconfig Sun Oct 3 10:56:17 2004
> @@ -84,6 +84,17 @@
>
> If you are unsure how to answer this question, answer N.
>
> +config SECURITY_REALTIME
> + tristate "Realtime Capabilities"
> + depends on SECURITY && SECURITY_CAPABILITIES!=y
Capabilities can be disabled on boot command line.
> --- linux-2.6.8.1/security/realtime.c Wed Dec 31 18:00:00 1969
> +++ linux-2.6.8.1-rt02/security/realtime.c Mon Oct 4 21:35:41 2004
> +static int any = 0; /* if TRUE, any process is realtime */
unecessary init to 0
> +MODULE_PARM(any, "i");
please use module_param (bonus, you get free entry on command line when
non-modular, and entry in /sysfs if you want).
> +MODULE_PARM_DESC(any, " grant realtime privileges to any process.");
> +
> +static int gid = -1; /* realtime group id, or NO_GROUP */
> +MODULE_PARM(gid, "i");
module_param.
> +MODULE_PARM_DESC(gid, " the group ID with access to realtime privileges.");
> +
> +static int mlock = 1; /* enable mlock() privileges */
> +MODULE_PARM(mlock, "i");
module_param.
> +MODULE_PARM_DESC(mlock, " enable memory locking privileges.");
> +
> +/* helper function for testing group membership */
> +static inline int gid_ok(int gid, int e_gid) {
> + int i;
> + int rt_ok = 0;
> +
> + if (gid == -1)
> + return 0;
> +
> + if ((gid == e_gid) || (gid == current->gid))
> + return 1;
> +
> + get_group_info(current->group_info);
> + for (i = 0; i < current->group_info->ngroups; ++i) {
> + if (gid == GROUP_AT(current->group_info, i)) {
> + rt_ok = 1;
> + break;
> + }
> + }
why not in_group_p?
> + put_group_info(current->group_info);
> +
> + return rt_ok;
> +}
> +
> +int realtime_bprm_set_security(struct linux_binprm *bprm)
> +{
> + /* Copied from security/commoncap.c: cap_bprm_set_security()... */
> + /* Copied from fs/exec.c:prepare_binprm. */
> + /* We don't have VFS support for capabilities yet */
> + cap_clear(bprm->cap_inheritable);
> + cap_clear(bprm->cap_permitted);
> + cap_clear(bprm->cap_effective);
> +
> + /* If a non-zero `any' parameter was specified, we grant
> + * realtime privileges to every process. If the `gid'
> + * parameter was specified and it matches the group id of the
> + * executable, of the current process or any supplementary
> + * groups, we grant realtime capabilites.
> + */
> +
> + if (any || gid_ok(gid, bprm->e_gid)) {
> + cap_raise(bprm->cap_effective, CAP_SYS_NICE);
> + cap_raise(bprm->cap_permitted, CAP_SYS_NICE);
> + if (mlock) {
> + cap_raise(bprm->cap_effective, CAP_IPC_LOCK);
> + cap_raise(bprm->cap_permitted, CAP_IPC_LOCK);
> + cap_raise(bprm->cap_effective,
> + CAP_SYS_RESOURCE);
> + cap_raise(bprm->cap_permitted,
> + CAP_SYS_RESOURCE);
> + }
> + }
Maybe it would be better to call cap_bprm_set_security first, then or in
the bits you care about. That way you don't have to worry about any changes
over there.
thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net
next prev parent reply other threads:[~2004-10-08 21:46 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-12 5:46 Lee Revell
2004-09-12 13:58 ` James Morris
2004-09-12 14:05 ` James Morris
2004-09-12 19:03 ` Lee Revell
2004-09-12 19:16 ` Jack O'Quin
2004-09-16 2:31 ` Jody McIntyre
2004-09-16 4:48 ` Jack O'Quin
2004-09-16 15:51 ` Jody McIntyre
2004-09-16 18:27 ` Jack O'Quin
2004-09-17 7:08 ` torbenh
2004-09-17 20:01 ` Jack O'Quin
2004-09-20 20:20 ` Jody McIntyre
2004-09-12 15:50 ` Kronos
2004-09-13 23:22 ` Lee Revell
2004-09-13 23:34 ` Chris Wright
2004-09-14 2:18 ` Lee Revell
2004-09-14 3:01 ` William Lee Irwin III
2004-09-14 3:46 ` Lee Revell
2004-09-14 3:50 ` William Lee Irwin III
2004-09-20 20:23 ` Jody McIntyre
2004-09-21 0:11 ` Jack O'Quin
2004-09-21 7:52 ` torbenh
2004-09-30 21:14 ` Jody McIntyre
2004-09-30 21:53 ` Lee Revell
2004-10-01 0:37 ` Jack O'Quin
2004-10-01 1:20 ` Chris Wright
2004-10-01 4:05 ` Jack O'Quin
2004-10-01 20:40 ` Lee Revell
2004-10-01 21:23 ` Chris Wright
2004-10-01 22:19 ` Lee Revell
2004-10-01 22:27 ` Chris Wright
2004-10-01 22:32 ` Lee Revell
2004-10-01 22:44 ` Chris Wright
2004-10-05 5:55 ` Jack O'Quin
2004-10-07 23:51 ` Lee Revell
2004-10-08 20:58 ` Lee Revell
2004-10-08 21:21 ` Andrew Morton
2004-10-08 21:22 ` Lee Revell
2004-10-08 21:25 ` Lee Revell
2004-10-08 21:45 ` Chris Wright [this message]
2004-10-08 21:49 ` Lee Revell
2004-10-08 21:52 ` Chris Wright
2004-10-08 22:05 ` Lee Revell
2004-10-08 22:09 ` Chris Wright
2004-10-08 22:19 ` Chris Wright
2004-10-08 22:24 ` Chris Wright
2004-10-08 23:05 ` Lee Revell
2004-10-08 23:12 ` Chris Wright
2004-10-08 23:15 ` Lee Revell
2004-10-08 23:20 ` Chris Wright
2004-10-09 1:01 ` Jack O'Quin
2004-10-09 5:16 ` Chris Wright
2004-10-09 16:16 ` Jack O'Quin
2004-10-09 19:11 ` Chris Wright
2004-10-09 20:27 ` Jack O'Quin
2004-10-09 22:53 ` Chris Wright
2004-10-22 23:59 ` Jack O'Quin
2004-10-23 0:36 ` Lee Revell
2004-10-23 1:23 ` Jack O'Quin
2004-10-23 1:27 ` Lee Revell
2004-10-23 5:08 ` Jack O'Quin
2004-10-23 18:17 ` Jack O'Quin
2004-10-25 2:03 ` Jack O'Quin
2004-10-23 20:04 ` Chris Wright
2004-10-05 4:00 ` Jack O'Quin
2004-10-15 1:55 ` Rusty Russell
2004-10-15 2:08 ` Lee Revell
[not found] <87acu0p0nw.fsf@sulphur.joq.us>
2004-11-09 22:39 ` Jack O'Quin
2004-11-20 2:44 ` Lee Revell
2004-11-20 3:55 ` Lee Revell
2004-11-20 6:19 ` Jack O'Quin
2004-11-20 6:43 ` Lee Revell
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=20041008144539.K2357@build.pdx.osdl.net \
--to=chrisw@osdl.org \
--cc=akpm@osdl.org \
--cc=joq@io.com \
--cc=linux-kernel@vger.kernel.org \
--cc=realtime-lsm@modernduck.com \
--cc=rlrevell@joe-job.com \
--cc=torbenh@gmx.de \
/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
all inboxes | Powered by JetHome®