User:Skangsep: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
#Koostaja: Siim Kängsepp, skangsep@itcollege.ee | #Koostaja: Siim Kängsepp, skangsep@itcollege.ee | ||
#Versioon: 0.1 | #Versioon: 0.1 | ||
#Järgnev skript kontrollib faili olemasolu ja sellele antud õiguseid. | #Järgnev skript kontrollib faili olemasolu ja sellele antud õiguseid. | ||
#Õigused tuleks sisestada täht-formaadis, mitte oktaalformaadis (777=rwxrwxrwx). | #Õigused tuleks sisestada täht-formaadis, mitte oktaalformaadis (777=rwxrwxrwx). | ||
#Kasutaja sisestab failinime, mille õigusi soovib kontrollida | #Kasutaja sisestab failinime, mille õigusi soovib kontrollida | ||
read -p "Järgnev skript kontrollib faili olemasolu ja sellele antud õiguseid. | read -p "Järgnev skript kontrollib faili olemasolu ja sellele antud õiguseid. | ||
Need tuleks sisestada täht-formaadis, mitte oktaalformaadis (näide - rwxrwxrwx). | Need tuleks sisestada täht-formaadis, mitte oktaalformaadis (näide - rwxrwxrwx). | ||
Sisesta failinimi : " file | Sisesta failinimi : " file | ||
#Vaatame kas selline fail on üldse olemas: | #Vaatame kas selline fail on üldse olemas: | ||
if [ ! -e $file ]; then | if [ ! -e $file ]; then | ||
exit 1 | exit 1 | ||
fi | fi | ||
#Seejärel sisestab õigused, milliste vastu ta kontrollida tahab. | #Seejärel sisestab õigused, milliste vastu ta kontrollida tahab. | ||
#Koostasin kontrolli, et oleks kindel, et pikkus=9 märki | #Koostasin kontrolli, et oleks kindel, et pikkus=9 märki | ||
Line 24: | Line 24: | ||
echo "Sisesta soovitud õigused, peab olema 9-tähemärgi pikkune" | echo "Sisesta soovitud õigused, peab olema 9-tähemärgi pikkune" | ||
read s_6igus | read s_6igus | ||
LENGTH=`echo -n $s_6igus | wc -m | sed -e s/^\s+//` | LENGTH=`echo -n $s_6igus | wc -m | sed -e s/^\s+//` | ||
echo $LENGTH | echo $LENGTH | ||
if [ $LENGTH != 9 ]; then | if [ $LENGTH != 9 ]; then | ||
echo "Peab olema 9 tähemärgi pikkune, sisesta uuesti" | echo "Peab olema 9 tähemärgi pikkune, sisesta uuesti" | ||
Line 35: | Line 35: | ||
fi | fi | ||
done | done | ||
#Järgnevalt leitakse failiõigused: | #Järgnevalt leitakse failiõigused: | ||
f_6igus=(`stat -c %A $file`) | f_6igus=(`stat -c %A $file`) | ||
#Eemaldatakse kataloogieristus | #Eemaldatakse kataloogieristus | ||
f_6igus=`echo -n $f_6igus | cut -c2-10` | f_6igus=`echo -n $f_6igus | cut -c2-10` | ||
#Järgnevalt eristatakse grupi, omaniku, teisteõigused: | #Järgnevalt eristatakse grupi, omaniku, teisteõigused: | ||
#omanik (faili) | #omanik (faili) | ||
w_6igus=`echo -n $f_6igus | cut -c1-3` | w_6igus=`echo -n $f_6igus | cut -c1-3` | ||
Line 52: | Line 52: | ||
o_6igus=`echo -n $f_6igus | cut -c7-9` | o_6igus=`echo -n $f_6igus | cut -c7-9` | ||
echo faili teiste 6igused: $o_6igus | echo faili teiste 6igused: $o_6igus | ||
#Sama asi kasutaja sisestatud õiguste puhul | #Sama asi kasutaja sisestatud õiguste puhul | ||
#omanik (kasutaja sisestatud) | #omanik (kasutaja sisestatud) | ||
ws_6igus=`echo -n $s_6igus | cut -c1-3` | ws_6igus=`echo -n $s_6igus | cut -c1-3` | ||
Line 64: | Line 64: | ||
oo_6igus=`echo -n $s_6igus | cut -c7-9` | oo_6igus=`echo -n $s_6igus | cut -c7-9` | ||
echo sisestatud teiste 6igused: $oo_6igus | echo sisestatud teiste 6igused: $oo_6igus | ||
#Õiguste võrdlemise loogika | #Õiguste võrdlemise loogika | ||
if [ "$w_6igus" = "$ws_6igus" ]; then | |||
exit 0 | |||
fi | |||
if [ "$w_6igus" != "$ws_6igus" ]; then | if [ "$w_6igus" != "$ws_6igus" ]; then | ||
exit 2 | exit 2 |
Revision as of 09:29, 13 May 2011
<source lang="bash">
- !/bin/bash
- Koostaja: Siim Kängsepp, skangsep@itcollege.ee
- Versioon: 0.1
- Järgnev skript kontrollib faili olemasolu ja sellele antud õiguseid.
- Õigused tuleks sisestada täht-formaadis, mitte oktaalformaadis (777=rwxrwxrwx).
- Kasutaja sisestab failinime, mille õigusi soovib kontrollida
read -p "Järgnev skript kontrollib faili olemasolu ja sellele antud õiguseid. Need tuleks sisestada täht-formaadis, mitte oktaalformaadis (näide - rwxrwxrwx).
Sisesta failinimi : " file
- Vaatame kas selline fail on üldse olemas:
if [ ! -e $file ]; then exit 1 fi
- Seejärel sisestab õigused, milliste vastu ta kontrollida tahab.
- Koostasin kontrolli, et oleks kindel, et pikkus=9 märki
OK=0 while [ "$OK" != 1 ] ; do
echo "Sisesta soovitud õigused, peab olema 9-tähemärgi pikkune" read s_6igus LENGTH=`echo -n $s_6igus | wc -m | sed -e s/^\s+//` echo $LENGTH if [ $LENGTH != 9 ]; then echo "Peab olema 9 tähemärgi pikkune, sisesta uuesti" else echo "Tubli, saidki hakkama"
OK=1
fi
done
- Järgnevalt leitakse failiõigused:
f_6igus=(`stat -c %A $file`)
- Eemaldatakse kataloogieristus
f_6igus=`echo -n $f_6igus | cut -c2-10`
- Järgnevalt eristatakse grupi, omaniku, teisteõigused:
- omanik (faili)
w_6igus=`echo -n $f_6igus | cut -c1-3` echo faili omanikuõigus: $w_6igus
- grupp (faili)
g_6igus=`echo -n $f_6igus | cut -c4-6` echo faili grupiõigus: $g_6igus
- teised (faili)
o_6igus=`echo -n $f_6igus | cut -c7-9` echo faili teiste 6igused: $o_6igus
- Sama asi kasutaja sisestatud õiguste puhul
- omanik (kasutaja sisestatud)
ws_6igus=`echo -n $s_6igus | cut -c1-3` echo sisestatud omanikuõigus: $ws_6igus
- grupp (kasutaja sisestatud)
gs_6igus=`echo -n $s_6igus | cut -c4-6` echo sisestatud grupiõigus: $gs_6igus
- teised (kasutaja sisestatud)
oo_6igus=`echo -n $s_6igus | cut -c7-9` echo sisestatud teiste 6igused: $oo_6igus
- Õiguste võrdlemise loogika
if [ "$w_6igus" = "$ws_6igus" ]; then exit 0 fi if [ "$w_6igus" != "$ws_6igus" ]; then exit 2 fi if [ "$g_6igus" != "$gs_6igus" ]; then exit 3 fi if [ "$o_6igus" != "$oo_6igus" ]; then exit 4 fi