3 # Copyright (c) 2016-2018 Samsung Electronics Co., Ltd All Rights Reserved
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
9 # http://www.apache.org/licenses/LICENSE-2.0
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.
17 # @file ckm-tests-on-onlycap.sh
18 # @author Kyungwook Tak (k.tak@samsung.com)
19 # @brief Run ckm-tests on onlycap environment
22 # save old label and onlycap
23 OLD_LABEL=`cat /proc/self/attr/current`
24 OLD_ONLYCAP=`cat /sys/fs/smackfs/onlycap`
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
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
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
43 ckm-privileged-tests "${@}" # propagate all arguments
46 echo -n $OLD_ONLYCAP > /sys/fs/smackfs/onlycap
49 # (assume that System::Privileged is allowed to do it with $OLD_ONLYCAP)
50 echo $OLD_LABEL > /proc/self/attr/current