| #!/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 |