[apparmor] Any plans for something like @{PROC}/@PID/ or @{PROCSELF} ?
Seth Arnold
seth.arnold at gmail.com
Wed Sep 14 21:57:46 UTC 2011
On Wed, Sep 14, 2011 at 12:53 PM, John Johansen
<john.johansen at canonical.com> wrote:
> On 09/14/2011 11:56 AM, Christian Boltz wrote:
>>>> @{PIDS}=[0-9][0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?
>>>> @{MYPID}= @{PIDS} until @{__KERNEL_PID__} is available
>>
>> Sounds like a good way, but are 7-digit PIDs really used out there?
/proc/sys/kernel/pid_max makes it very easy to change the max pid, we
might as well support those installations. (Especially since the uglyness
is hidden in a variable.)
> Unlikely it sounds like a case for exposing better access to the regex
> engine. And doing something more like the pcre re
> [0-9]{1,7}
I wished for that feature for a second :) but it _is_ just syntactic
sugar. Time feels better spent elsewhere.
> exactly it really it has to be supported. Beyond the "wait" parts there
> are all kinds of situations where there is either a mix of old kernel
> and new policy, or new policy and old kernel. The system state
> immediately after an upgrade is just one such case.
Good point. Should the parser "export" its own variables, reflecting
kernel capabilities?
if(__kernel_has_pid_variable__) {
@{MYPID}=@{__KERNEL__PID__}
} else {
@{MYPID}=@{PIDS}
}
Any variables the kernel understands can be listed in the
/sys/kernel/security/apparmor/features file; any
__kernel_has_foo_variable__ could return false by default (regardless of
'foo', to make it easily extensible), but return true when the kernel
_can_ support the tighter-integration?
(The long-awaited profile lint could report potentially mispelled
variables...)
> two further points.
> do you want the variable name capitalized? @{MYPID} vs. @{mypid}
Hrm. I thought I wanted it capitalized, since @{HOME} feels so natural,
but we don't need our profiles to be shouty. Either way. :)
> there is also the whole issue of pid vs tid. In some cases you want
> one, and not the other and in others you want both.
I thought about the tid too, but currently glibc doesn't export a syscall
for gettid(2), so it doesn't feel very common for a program to generate
its own tid as a filename anywhere -- it isn't as easy to get as $$ in
shell or some scripting languages.
More information about the AppArmor
mailing list