Re: [PATCH 2/9] syslog_ns: add syslog_ns into user_namespace

From: Gu Zheng
Date: Mon Jul 29 2013 - 06:00:30 EST


On 07/29/2013 05:54 PM, Gao feng wrote:

> On 07/29/2013 05:46 PM, Gu Zheng wrote:
>> Hi Rui,
>>
>> On 07/29/2013 10:31 AM, Rui Xiang wrote:
>>
>>> Add a syslog_ns pointer to user_namespace, and make
>>> syslog_ns per user_namespace, not global.
>>>
>>> Since syslog_ns is assigned to user_ns, we can have
>>> full capabilities in new user_ns to create a new syslog_ns.
>>>
>>> Signed-off-by: Rui Xiang <rui.xiang@xxxxxxxxxx>
>>> ---
>>> include/linux/syslog.h | 5 +++++
>>> include/linux/user_namespace.h | 1 +
>>> 2 files changed, 6 insertions(+)
>>>
>>> diff --git a/include/linux/syslog.h b/include/linux/syslog.h
>>> index 425fafe..62ce47f 100644
>>> --- a/include/linux/syslog.h
>>> +++ b/include/linux/syslog.h
>>> @@ -90,6 +90,11 @@ struct syslog_namespace {
>>> size_t syslog_partial;
>>>
>>> int dmesg_restrict;
>>> +
>>> + /*
>>> + * user namespace which owns this syslog ns.
>>> + */
>>> + struct user_namespace *owner;
>>> };
>>>
>>> static inline struct syslog_namespace *get_syslog_ns(
>>> diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
>>> index b6b215f..ce2de5b 100644
>>> --- a/include/linux/user_namespace.h
>>> +++ b/include/linux/user_namespace.h
>>> @@ -28,6 +28,7 @@ struct user_namespace {
>>> unsigned int proc_inum;
>>> bool may_mount_sysfs;
>>> bool may_mount_proc;
>>> + struct syslog_namespace *syslog_ns;
>>
>> As we add a syslog_ns pointer to user_namespace to make
>> syslog_ns per user_namespace and the caps check.
>> But why also add a point to syslog_namespace in
>> user_namespace? Am I missing something?:)
>>
>
> yep,with this we can make sure all the other types of namespace such as mount, net, pid
> can access syslog_ns through user namespace.

Got it.:)

Thanks,
Gu

>
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/