28 lines
767 B
Bash
28 lines
767 B
Bash
#!/bin/sh
|
|
RC=0
|
|
SMACK_PATH=`grep smack /proc/mounts | awk '{print $2}'`
|
|
test_label="test_label"
|
|
onlycap_initial=`cat $SMACK_PATH/onlycap`
|
|
smack_initial=`cat /proc/self/attr/current`
|
|
|
|
# need to set out label to be the same as onlycap, otherwise we lose our smack privileges
|
|
# even if we are root
|
|
echo "$test_label" > /proc/self/attr/current
|
|
|
|
echo "$test_label" > $SMACK_PATH/onlycap || RC=$?
|
|
if [ $RC -ne 0 ]; then
|
|
echo "Onlycap label could not be set"
|
|
return $RC
|
|
fi
|
|
|
|
if [ `cat $SMACK_PATH/onlycap` != "$test_label" ]; then
|
|
echo "Onlycap label was not set correctly."
|
|
return 1
|
|
fi
|
|
|
|
# resetting original onlycap label
|
|
echo "$onlycap_initial" > $SMACK_PATH/onlycap 2>/dev/null
|
|
|
|
# resetting our initial's process label
|
|
echo "$smack_initial" > /proc/self/attr/current
|