From: Richard Guy Briggs <rgb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> To: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-audit-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org Cc: linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, pmoore-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, eparis-FjpueFixGhCM4zKIHC2jIg@public.gmane.org, sgrubb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, zohar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org, ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org Subject: [PATCH V6 09/10] audit: log on switching namespace (setns) Date: Fri, 17 Apr 2015 03:35:56 -0400 [thread overview] Message-ID: <2cbbc564ee3029890f3f49a56bdf149d6db15f34.1429252659.git.rgb@redhat.com> (raw) In-Reply-To: <cover.1429252659.git.rgb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> In-Reply-To: <cover.1429252659.git.rgb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Added six new audit message types, AUDIT_NS_SET_* and function audit_log_ns_set() to log a switch of namespace. Signed-off-by: Richard Guy Briggs <rgb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> --- include/linux/audit.h | 4 +++ include/uapi/linux/audit.h | 6 +++++ kernel/audit.c | 52 ++++++++++++++++++++++++++++++++++++++++++++ kernel/nsproxy.c | 3 ++ 4 files changed, 65 insertions(+), 0 deletions(-) diff --git a/include/linux/audit.h b/include/linux/audit.h index b28dfb0..c71c819 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -26,6 +26,7 @@ #include <linux/sched.h> #include <linux/ptrace.h> #include <uapi/linux/audit.h> +#include <linux/proc_ns.h> struct audit_sig_info { uid_t uid; @@ -487,6 +488,7 @@ static inline void audit_log_ns_info(struct task_struct *tsk) extern void audit_log_ns_init(int type, unsigned int old_inum, unsigned int inum); extern void audit_log_ns_del(int type, unsigned int inum); +extern void audit_log_ns_set(const struct proc_ns_operations *ops, void *ns); extern int audit_update_lsm_rules(void); @@ -550,6 +552,8 @@ static inline int audit_log_ns_init(int type, unsigned int old_inum, { } static inline int audit_log_ns_del(int type, unsigned int inum) { } +static inline void audit_log_ns_set(const struct proc_ns_operations *ops, void *ns) +{ } #define audit_enabled 0 #endif /* CONFIG_AUDIT */ static inline void audit_log_string(struct audit_buffer *ab, const char *buf) diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index 487cad6..567b45f 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h @@ -123,6 +123,12 @@ #define AUDIT_NS_DEL_USER 1339 /* Record USER namespace instance deletion */ #define AUDIT_NS_DEL_PID 1340 /* Record PID namespace instance deletion */ #define AUDIT_NS_DEL_NET 1341 /* Record NET namespace instance deletion */ +#define AUDIT_NS_SET_MNT 1342 /* Record mount namespace instance deletion */ +#define AUDIT_NS_SET_UTS 1343 /* Record UTS namespace instance deletion */ +#define AUDIT_NS_SET_IPC 1344 /* Record IPC namespace instance deletion */ +#define AUDIT_NS_SET_USER 1345 /* Record USER namespace instance deletion */ +#define AUDIT_NS_SET_PID 1346 /* Record PID namespace instance deletion */ +#define AUDIT_NS_SET_NET 1347 /* Record NET namespace instance deletion */ #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ diff --git a/kernel/audit.c b/kernel/audit.c index b7f10e9..a7b1b61 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -2054,6 +2054,58 @@ void audit_log_ns_del(int type, unsigned int inum) inum - PROC_DYNAMIC_FIRST); audit_log_end(ab); } + +/** + * audit_log_ns_set - report a namespace set change + * @ops: the ops structure for the namespace to be changed + * @ns: the new namespace + */ +void audit_log_ns_set(const struct proc_ns_operations *ops, void *ns) +{ + struct audit_buffer *ab; + void *old_ns; + int msg_type; + struct vfsmount *mnt = task_active_pid_ns(current)->proc_mnt; + struct super_block *sb = mnt->mnt_sb; + char old_ns_s[16]; + + switch (ops->type) { + case CLONE_NEWNS: + msg_type = AUDIT_NS_SET_MNT; + break; + case CLONE_NEWUTS: + msg_type = AUDIT_NS_SET_UTS; + break; + case CLONE_NEWIPC: + msg_type = AUDIT_NS_SET_IPC; + break; + case CLONE_NEWUSER: + msg_type = AUDIT_NS_SET_USER; + break; + case CLONE_NEWPID: + msg_type = AUDIT_NS_SET_PID; + break; + case CLONE_NEWNET: + msg_type = AUDIT_NS_SET_NET; + break; + default: + return; + } + audit_log_common_recv_msg(&ab, ops->type); + if (!ab) + return; + old_ns = ops->get(current); + if (!ops->inum(old_ns)) + sprintf(old_ns_s, "(none)"); + else + sprintf(old_ns_s, "%d", ops->inum(old_ns) - PROC_DYNAMIC_FIRST); + audit_log_format(ab, " dev=%02x:%02x old_%sns=%s %sns=%d res=1", + MAJOR(sb->s_dev), MINOR(sb->s_dev), + ops->name, old_ns_s, + ops->name, ops->inum(ns)); + ops->put(old_ns); + audit_log_end(ab); +} #endif /* CONFIG_NAMESPACES */ /** diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c index d5353c2..2ca86cf 100644 --- a/kernel/nsproxy.c +++ b/kernel/nsproxy.c @@ -257,6 +257,9 @@ SYSCALL_DEFINE2(setns, int, fd, int, nstype) goto out; } switch_task_namespaces(tsk, new_nsproxy); + + audit_log_ns_set(ops, ei->ns); + out: fput(file); return err; -- 1.7.1
WARNING: multiple messages have this Message-ID (diff)
From: Richard Guy Briggs <rgb@redhat.com> To: containers@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linux-audit@redhat.com Cc: Richard Guy Briggs <rgb@redhat.com>, sgrubb@redhat.com, eparis@parisplace.org, pmoore@redhat.com, arozansk@redhat.com, ebiederm@xmission.com, serge@hallyn.com, zohar@linux.vnet.ibm.com, linux-api@vger.kernel.org Subject: [PATCH V6 09/10] audit: log on switching namespace (setns) Date: Fri, 17 Apr 2015 03:35:56 -0400 [thread overview] Message-ID: <2cbbc564ee3029890f3f49a56bdf149d6db15f34.1429252659.git.rgb@redhat.com> (raw) In-Reply-To: <cover.1429252659.git.rgb@redhat.com> In-Reply-To: <cover.1429252659.git.rgb@redhat.com> Added six new audit message types, AUDIT_NS_SET_* and function audit_log_ns_set() to log a switch of namespace. Signed-off-by: Richard Guy Briggs <rgb@redhat.com> --- include/linux/audit.h | 4 +++ include/uapi/linux/audit.h | 6 +++++ kernel/audit.c | 52 ++++++++++++++++++++++++++++++++++++++++++++ kernel/nsproxy.c | 3 ++ 4 files changed, 65 insertions(+), 0 deletions(-) diff --git a/include/linux/audit.h b/include/linux/audit.h index b28dfb0..c71c819 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h @@ -26,6 +26,7 @@ #include <linux/sched.h> #include <linux/ptrace.h> #include <uapi/linux/audit.h> +#include <linux/proc_ns.h> struct audit_sig_info { uid_t uid; @@ -487,6 +488,7 @@ static inline void audit_log_ns_info(struct task_struct *tsk) extern void audit_log_ns_init(int type, unsigned int old_inum, unsigned int inum); extern void audit_log_ns_del(int type, unsigned int inum); +extern void audit_log_ns_set(const struct proc_ns_operations *ops, void *ns); extern int audit_update_lsm_rules(void); @@ -550,6 +552,8 @@ static inline int audit_log_ns_init(int type, unsigned int old_inum, { } static inline int audit_log_ns_del(int type, unsigned int inum) { } +static inline void audit_log_ns_set(const struct proc_ns_operations *ops, void *ns) +{ } #define audit_enabled 0 #endif /* CONFIG_AUDIT */ static inline void audit_log_string(struct audit_buffer *ab, const char *buf) diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h index 487cad6..567b45f 100644 --- a/include/uapi/linux/audit.h +++ b/include/uapi/linux/audit.h @@ -123,6 +123,12 @@ #define AUDIT_NS_DEL_USER 1339 /* Record USER namespace instance deletion */ #define AUDIT_NS_DEL_PID 1340 /* Record PID namespace instance deletion */ #define AUDIT_NS_DEL_NET 1341 /* Record NET namespace instance deletion */ +#define AUDIT_NS_SET_MNT 1342 /* Record mount namespace instance deletion */ +#define AUDIT_NS_SET_UTS 1343 /* Record UTS namespace instance deletion */ +#define AUDIT_NS_SET_IPC 1344 /* Record IPC namespace instance deletion */ +#define AUDIT_NS_SET_USER 1345 /* Record USER namespace instance deletion */ +#define AUDIT_NS_SET_PID 1346 /* Record PID namespace instance deletion */ +#define AUDIT_NS_SET_NET 1347 /* Record NET namespace instance deletion */ #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ diff --git a/kernel/audit.c b/kernel/audit.c index b7f10e9..a7b1b61 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -2054,6 +2054,58 @@ void audit_log_ns_del(int type, unsigned int inum) inum - PROC_DYNAMIC_FIRST); audit_log_end(ab); } + +/** + * audit_log_ns_set - report a namespace set change + * @ops: the ops structure for the namespace to be changed + * @ns: the new namespace + */ +void audit_log_ns_set(const struct proc_ns_operations *ops, void *ns) +{ + struct audit_buffer *ab; + void *old_ns; + int msg_type; + struct vfsmount *mnt = task_active_pid_ns(current)->proc_mnt; + struct super_block *sb = mnt->mnt_sb; + char old_ns_s[16]; + + switch (ops->type) { + case CLONE_NEWNS: + msg_type = AUDIT_NS_SET_MNT; + break; + case CLONE_NEWUTS: + msg_type = AUDIT_NS_SET_UTS; + break; + case CLONE_NEWIPC: + msg_type = AUDIT_NS_SET_IPC; + break; + case CLONE_NEWUSER: + msg_type = AUDIT_NS_SET_USER; + break; + case CLONE_NEWPID: + msg_type = AUDIT_NS_SET_PID; + break; + case CLONE_NEWNET: + msg_type = AUDIT_NS_SET_NET; + break; + default: + return; + } + audit_log_common_recv_msg(&ab, ops->type); + if (!ab) + return; + old_ns = ops->get(current); + if (!ops->inum(old_ns)) + sprintf(old_ns_s, "(none)"); + else + sprintf(old_ns_s, "%d", ops->inum(old_ns) - PROC_DYNAMIC_FIRST); + audit_log_format(ab, " dev=%02x:%02x old_%sns=%s %sns=%d res=1", + MAJOR(sb->s_dev), MINOR(sb->s_dev), + ops->name, old_ns_s, + ops->name, ops->inum(ns)); + ops->put(old_ns); + audit_log_end(ab); +} #endif /* CONFIG_NAMESPACES */ /** diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c index d5353c2..2ca86cf 100644 --- a/kernel/nsproxy.c +++ b/kernel/nsproxy.c @@ -257,6 +257,9 @@ SYSCALL_DEFINE2(setns, int, fd, int, nstype) goto out; } switch_task_namespaces(tsk, new_nsproxy); + + audit_log_ns_set(ops, ei->ns); + out: fput(file); return err; -- 1.7.1
next prev parent reply other threads:[~2015-04-17 7:35 UTC|newest] Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-04-17 7:35 [PATCH V6 00/10] namespaces: log namespaces per task Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 08/10] fork: audit on creation of new namespace(s) Richard Guy Briggs [not found] ` <cover.1429252659.git.rgb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-04-17 7:35 ` [PATCH V6 01/10] namespaces: expose ns_entries Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 02/10] proc_ns: define PROC_*_INIT_INO in terms of PROC_DYNAMIC_FIRST Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 03/10] audit: log namespace ID numbers Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 04/10] audit: initialize at subsystem time rather than device time Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 05/10] audit: log creation and deletion of namespace instances Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs [not found] ` <11270b0b1afd0a25b108915673e1e1b38dfeeafa.1429252659.git.rgb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-05-05 14:22 ` Steve Grubb 2015-05-05 14:22 ` Steve Grubb 2015-05-05 14:31 ` Aristeu Rozanski 2015-05-05 14:31 ` Aristeu Rozanski [not found] ` <20150505143119.GA4350-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-05-05 14:46 ` Steve Grubb 2015-05-05 14:46 ` Steve Grubb 2015-05-05 14:56 ` Eric W. Biederman 2015-05-05 14:56 ` Eric W. Biederman [not found] ` <87pp6fhy4c.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org> 2015-05-05 15:16 ` Steve Grubb 2015-05-05 15:16 ` Steve Grubb 2015-05-12 19:57 ` Richard Guy Briggs 2015-05-12 19:57 ` Richard Guy Briggs [not found] ` <20150512195759.GA9832-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-05-14 14:57 ` Steve Grubb 2015-05-14 14:57 ` Steve Grubb 2015-05-14 14:57 ` Steve Grubb 2015-05-14 15:12 ` LC Bruzenak 2015-05-14 15:42 ` Eric W. Biederman 2015-05-14 15:42 ` Eric W. Biederman [not found] ` <87iobvnp1t.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org> 2015-05-14 16:21 ` Steve Grubb 2015-05-14 16:21 ` Steve Grubb 2015-05-14 16:36 ` LC Bruzenak 2015-05-15 2:03 ` Richard Guy Briggs 2015-05-15 2:03 ` Richard Guy Briggs 2015-05-15 2:03 ` Richard Guy Briggs 2015-05-14 15:42 ` Eric W. Biederman 2015-05-14 19:19 ` Paul Moore 2015-05-15 1:31 ` Eric W. Biederman 2015-05-15 1:31 ` Eric W. Biederman 2015-05-15 1:31 ` Eric W. Biederman [not found] ` <87bnhmbp8e.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org> 2015-05-15 2:25 ` Richard Guy Briggs 2015-05-15 13:17 ` Steve Grubb 2015-05-15 21:01 ` Paul Moore 2015-05-15 2:25 ` Richard Guy Briggs 2015-05-15 13:17 ` Steve Grubb 2015-05-15 13:17 ` Steve Grubb 2015-05-15 14:51 ` Eric W. Biederman 2015-05-15 14:51 ` Eric W. Biederman 2015-05-15 21:01 ` Paul Moore 2015-05-15 2:32 ` Richard Guy Briggs [not found] ` <20150515023221.GC965-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-05-15 6:23 ` Andy Lutomirski 2015-05-15 6:23 ` Andy Lutomirski 2015-05-15 6:23 ` Andy Lutomirski [not found] ` <CALCETrWzM4+Vs8OVJWBcWJfbR_DRSb+e7SmUyy6CS4sHQaTkRw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-05-15 12:38 ` Steve Grubb 2015-05-15 12:38 ` Steve Grubb 2015-05-15 13:17 ` Andy Lutomirski 2015-05-15 13:17 ` Andy Lutomirski 2015-05-15 21:05 ` Paul Moore 2015-05-15 21:05 ` Paul Moore 2015-05-16 9:46 ` Daniel J Walsh 2015-05-16 9:46 ` Daniel J Walsh 2015-05-16 12:16 ` Paul Moore 2015-05-16 14:46 ` Eric W. Biederman 2015-05-16 14:46 ` Eric W. Biederman 2015-05-16 14:46 ` Eric W. Biederman [not found] ` <87r3qgpol6.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org> 2015-05-16 22:49 ` Paul Moore 2015-05-16 22:49 ` Paul Moore 2015-05-16 22:49 ` Paul Moore 2015-05-19 13:09 ` Richard Guy Briggs [not found] ` <20150519130911.GB20131-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-05-19 14:27 ` Paul Moore 2015-05-19 14:27 ` Paul Moore [not found] ` <CAHC9VhQs6pxFC3dvZic5XzuJr1xdJZyPjXdBoipwY3OOkng0ng-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-05-19 13:09 ` Richard Guy Briggs [not found] ` <CAHC9VhRKSK9=9qPF3dgALS=x1g3LinNeQvuhNV5TvQ=D7Szuag-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-05-16 14:46 ` Eric W. Biederman [not found] ` <555711FA.50703-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-05-16 12:16 ` Paul Moore 2015-05-15 2:32 ` Richard Guy Briggs 2015-05-14 19:19 ` Paul Moore 2015-05-15 0:48 ` Richard Guy Briggs 2015-05-15 0:48 ` Richard Guy Briggs 2015-05-15 0:48 ` Richard Guy Briggs 2015-05-15 20:26 ` Paul Moore [not found] ` <20150515004855.GB10526-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-05-15 1:10 ` Oren Laadan 2015-05-15 2:11 ` Richard Guy Briggs 2015-05-15 2:11 ` Richard Guy Briggs [not found] ` <20150515021126.GA965-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-05-15 13:19 ` Daniel J Walsh 2015-05-15 13:19 ` Daniel J Walsh [not found] ` <CAA4jN2bgynVTwF+owtXgq06JMLQJpy_qokpD0mAguNYeDxmh1A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-05-15 2:11 ` Richard Guy Briggs 2015-05-15 20:42 ` Paul Moore 2015-05-15 20:42 ` Paul Moore 2015-05-15 20:42 ` Paul Moore 2015-05-15 20:26 ` Paul Moore 2015-05-12 19:57 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 06/10] audit: dump namespace IDs for pid on receipt of AUDIT_NS_INFO Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 07/10] sched: add a macro to ref all CLONE_NEW* flags Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs [not found] ` <cf1ed24f71743ea7f85682f26f3185202a1f8a32.1429252659.git.rgb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2015-04-17 8:18 ` Peter Zijlstra 2015-04-17 8:18 ` Peter Zijlstra [not found] ` <20150417081843.GE23123-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 2015-04-17 15:42 ` Richard Guy Briggs 2015-04-17 15:42 ` Richard Guy Briggs [not found] ` <20150417154250.GA26233-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-04-17 17:41 ` Peter Zijlstra 2015-04-17 17:41 ` Peter Zijlstra [not found] ` <20150417174131.GL23123-ndre7Fmf5hadTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org> 2015-04-17 22:00 ` Richard Guy Briggs 2015-04-17 22:00 ` Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 08/10] fork: audit on creation of new namespace(s) Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs [this message] 2015-04-17 7:35 ` [PATCH V6 09/10] audit: log on switching namespace (setns) Richard Guy Briggs 2015-04-17 7:35 ` [PATCH V6 10/10] audit: emit AUDIT_NS_INFO record with AUDIT_VIRT_CONTROL record Richard Guy Briggs 2015-04-17 7:35 ` Richard Guy Briggs 2015-04-21 4:33 ` [PATCH V6 00/10] namespaces: log namespaces per task Eric W. Biederman 2015-04-21 4:33 ` Eric W. Biederman [not found] ` <87vbgqw163.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org> 2015-04-23 3:07 ` Richard Guy Briggs 2015-04-23 3:07 ` Richard Guy Briggs 2015-04-23 20:44 ` Richard Guy Briggs [not found] ` <20150423204429.GA25794-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-04-24 19:36 ` Eric W. Biederman 2015-04-24 19:36 ` Eric W. Biederman [not found] ` <87bnid9v4f.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org> 2015-04-28 2:05 ` Richard Guy Briggs 2015-04-28 2:05 ` Richard Guy Briggs [not found] ` <20150428020555.GB20713-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-04-28 2:16 ` Eric W. Biederman 2015-04-28 2:16 ` Eric W. Biederman 2015-05-08 14:42 ` Richard Guy Briggs [not found] ` <87zj5tgfpb.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org> 2015-05-08 14:42 ` Richard Guy Briggs [not found] ` <20150423030751.GA6712-bcJWsdo4jJjeVoXN4CMphl7TgLCtbB0G@public.gmane.org> 2015-04-23 20:44 ` Richard Guy Briggs
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=2cbbc564ee3029890f3f49a56bdf149d6db15f34.1429252659.git.rgb@redhat.com \ --to=rgb-h+wxahxf7alqt0dzr+alfa@public.gmane.org \ --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \ --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \ --cc=eparis-FjpueFixGhCM4zKIHC2jIg@public.gmane.org \ --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-audit-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \ --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=pmoore-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \ --cc=sgrubb-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \ --cc=zohar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.