net: make net namespace sysctls belong to container's owner
If net namespace is attached to a user namespace let's make container's root owner of sysctls affecting said network namespace instead of global root. This also allows us to clean up net_ctl_permissions() because we do not need to fudge permissions anymore for the container's owner since it now owns the objects in question. Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
此提交包含在:
@@ -430,6 +430,7 @@ static int sysctl_perm(struct ctl_table_header *head, struct ctl_table *table, i
|
||||
static struct inode *proc_sys_make_inode(struct super_block *sb,
|
||||
struct ctl_table_header *head, struct ctl_table *table)
|
||||
{
|
||||
struct ctl_table_root *root = head->root;
|
||||
struct inode *inode;
|
||||
struct proc_inode *ei;
|
||||
|
||||
@@ -457,6 +458,10 @@ static struct inode *proc_sys_make_inode(struct super_block *sb,
|
||||
if (is_empty_dir(head))
|
||||
make_empty_dir_inode(inode);
|
||||
}
|
||||
|
||||
if (root->set_ownership)
|
||||
root->set_ownership(head, table, &inode->i_uid, &inode->i_gid);
|
||||
|
||||
out:
|
||||
return inode;
|
||||
}
|
||||
|
新增問題並參考
封鎖使用者