User:Skangsep: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Skangsep (talk | contribs)
No edit summary
Skangsep (talk | contribs)
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">

  1. !/bin/bash
  2. Koostaja: Siim Kängsepp, skangsep@itcollege.ee
  3. Versioon: 0.1
  1. Järgnev skript kontrollib faili olemasolu ja sellele antud õiguseid.
  2. Õigused tuleks sisestada täht-formaadis, mitte oktaalformaadis (777=rwxrwxrwx).
  1. 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

  1. Vaatame kas selline fail on üldse olemas:

if [ ! -e $file ]; then exit 1 fi

  1. Seejärel sisestab õigused, milliste vastu ta kontrollida tahab.
  2. 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

  1. Järgnevalt leitakse failiõigused:

f_6igus=(`stat -c %A $file`)

  1. Eemaldatakse kataloogieristus

f_6igus=`echo -n $f_6igus | cut -c2-10`

  1. Järgnevalt eristatakse grupi, omaniku, teisteõigused:
  1. omanik (faili)

w_6igus=`echo -n $f_6igus | cut -c1-3` echo faili omanikuõigus: $w_6igus

  1. grupp (faili)

g_6igus=`echo -n $f_6igus | cut -c4-6` echo faili grupiõigus: $g_6igus

  1. teised (faili)

o_6igus=`echo -n $f_6igus | cut -c7-9` echo faili teiste 6igused: $o_6igus

  1. Sama asi kasutaja sisestatud õiguste puhul
  1. omanik (kasutaja sisestatud)

ws_6igus=`echo -n $s_6igus | cut -c1-3` echo sisestatud omanikuõigus: $ws_6igus

  1. grupp (kasutaja sisestatud)

gs_6igus=`echo -n $s_6igus | cut -c4-6` echo sisestatud grupiõigus: $gs_6igus

  1. teised (kasutaja sisestatud)

oo_6igus=`echo -n $s_6igus | cut -c7-9` echo sisestatud teiste 6igused: $oo_6igus


  1. Õ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