-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtest_access_control.sh
executable file
·55 lines (40 loc) · 1.33 KB
/
test_access_control.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
CONF=/etc/access_control.conf
FILE_FOR_TEST=~/test_file
DELAY=61 #sec
touch $FILE_FOR_TEST
RIGHT_PERMISSIONS=$(stat -c %a $FILE_FOR_TEST)
RIGHT_OWNER=$(stat -c %U $FILE_FOR_TEST)
RIGHT_GROUP=$(stat -c %G $FILE_FOR_TEST)
echo "$FILE_FOR_TEST:$RIGHT_PERMISSIONS:$RIGHT_OWNER:$RIGHT_GROUP" >> $CONF
function compareParameters {
if [[ $2 == $3 ]]
then
echo "[+] $1 - OK"
else
echo "[-] $1 - Error"
echo "Got $2, when expect $3"
fi
}
chmod 777 $FILE_FOR_TEST
chown $USER $FILE_FOR_TEST
chgrp $USER $FILE_FOR_TEST
echo "Need to wait $DELAY sec"
CONTROL_SERVICE_PID=$(pgrep access_control)
sleep $DELAY
changedPermissions=$(stat -c %a $FILE_FOR_TEST)
compareParameters "Basic test permissions" $changedPermissions $RIGHT_PERMISSIONS
changedOwner=$(stat -c %U $FILE_FOR_TEST)
compareParameters "Basic test owner" $changedOwner $RIGHT_OWNER
changedGrp=$(stat -c %G $FILE_FOR_TEST)
compareParameters "Basic test group" $changedGrp $RIGHT_GROUP
chmod 777 $FILE_FOR_TEST
kill -USR1 $CONTROL_SERVICE_PID
sleep 1
changedPermissions=$(stat -c %a $FILE_FOR_TEST)
compareParameters "SIGUSR1 test" $changedPermissions $RIGHT_PERMISSIONS
echo "If you see OK for 4 times then all work well"
rm $FILE_FOR_TEST
# delete last line from CONF
# containing info about FILE_FOR_TEST
sed -i '$ d' $CONF