User:Skangsep

From ICO wiki
Revision as of 17:08, 20 May 2011 by Skangsep (talk | contribs)
Jump to navigationJump to search

QUEST5:

#!/bin/bash
#Koostaja: Siim Kängsepp, skangsep@itcollege.ee
#Versioon: QUEST 5 ver.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





QUEST 20: <source lang="bash">

  1. !/bin/bash
  2. Koostaja: Siim Kängsepp, skangsep@itcollege.ee
  3. Versioon: Quest20 ver 0.1
  1. Skript, mis vaatab kas kasutaja on lukus.
  2. exit 0 - kasutaja on lukus
  3. exit 1 - kasutaja pole lukus
  4. exit 2 - kasutajat pole üldse

echo "Sisesta kasutajanimi" read nimi

var=$(passwd -Sa | grep $nimi | cut -d" " -f2)

if [ $? -eq 0 ]; then

       if [ "$var" == "L" ]; then
         echo "Kasutaja on lukus"

exit 0

       else
         echo "Kasutaja pole lukus"

exit 1 fi else

 echo "Kasutajat pole"

exit 2 fi