Merge branches 'ckm', 'security-manager' and 'cynara' into 'tizen'
[platform/core/test/security-tests.git] / src / ckm / privileged / ckm-tests-on-onlycap.sh
1 #!/bin/sh
2
3 # Copyright (c) 2016-2018 Samsung Electronics Co., Ltd All Rights Reserved
4 #
5 #    Licensed under the Apache License, Version 2.0 (the "License");
6 #    you may not use this file except in compliance with the License.
7 #    You may obtain a copy of the License at
8 #
9 #        http://www.apache.org/licenses/LICENSE-2.0
10 #
11 #    Unless required by applicable law or agreed to in writing, software
12 #    distributed under the License is distributed on an "AS IS" BASIS,
13 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 #    See the License for the specific language governing permissions and
15 #    limitations under the License.
16 #
17 # @file        ckm-tests-on-onlycap.sh
18 # @author      Kyungwook Tak (k.tak@samsung.com)
19 # @brief       Run ckm-tests on onlycap environment
20 #
21
22 # save old label and onlycap
23 OLD_LABEL=`cat /proc/self/attr/current`
24 OLD_ONLYCAP=`cat /sys/fs/smackfs/onlycap`
25
26 # make sure we're in onlycap so original state can be restored later
27 # (assume that OLD_LABEL is allowed to change the label)
28 echo "System::Privileged" > /proc/self/attr/current || exit
29
30 # push test app lables to onlycap label list
31 echo "System::Privileged \
32       User::Pkg::test_label \
33       User::Pkg::test_label_2 \
34       User::Pkg::test_label_3 \
35       User::Pkg::test_label_4 \
36       User::Pkg::test_label_5 \
37       System" > /sys/fs/smackfs/onlycap || exit
38
39 # set capability for changing smack label of self and add/remove smack rules
40 setcap cap_mac_admin=eip /usr/bin/ckm-privileged-tests || exit
41
42 # run test
43 ckm-privileged-tests "${@}" # propagate all arguments
44
45 # restore old onlycap
46 echo -n $OLD_ONLYCAP > /sys/fs/smackfs/onlycap
47
48 # restore old label
49 # (assume that System::Privileged is allowed to do it with $OLD_ONLYCAP)
50 echo $OLD_LABEL > /proc/self/attr/current