Kernel threads excluded from smack checks

Adds an ignore case for kernel tasks,
so that they can access all resources.

Since kernel worker threads are spawned with
floor label, they are severely restricted by
Smack policy. It is not an issue without onlycap,
as these processes also run with root,
so CAP_MAC_OVERRIDE kicks in. But with onlycap
turned on, there is no way to change the label
for these processes.

Signed-off-by: Roman Kubiak <r.kubiak@samsung.com>
Acked-by: Casey Schaufler <casey@schaufler-ca.com>
This commit is contained in:
Roman Kubiak 2015-08-10 16:54:25 +02:00 коммит произвёл Casey Schaufler
Родитель 1eddfe8edb
Коммит 41a2d57516
1 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -639,6 +639,12 @@ int smack_privileged(int cap)
struct smack_known *skp = smk_of_current(); struct smack_known *skp = smk_of_current();
struct smack_onlycap *sop; struct smack_onlycap *sop;
/*
* All kernel tasks are privileged
*/
if (unlikely(current->flags & PF_KTHREAD))
return 1;
if (!capable(cap)) if (!capable(cap))
return 0; return 0;