User:Amill: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Amill (talk | contribs)
Amill (talk | contribs)
 
(2 intermediate revisions by the same user not shown)
Line 9: Line 9:


==Lahendus==
==Lahendus==
<source lang="python">
#!/usr/bin/python
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
#Autor:Andres Mill A22 amill@itcollege.ee
#Versioon:0.1
#Viimane muutmise kuupäev:23.05.2011
#Skript kontrollib, kas kasutaja on lukus.
#Impordime sys ja os moodulid
#Impordime sys ja os moodulid
#sys moodulit kasutame k2surea parameetrite lugemiseks.
#sys moodulit kasutame k2surea parameetrite lugemiseks.
#os moodulit kasutame kasutaja 6iguste kontrolliks.
#os moodulit kasutame õiguste kontrolliks.
import sys
import sys
import os
import os
 
#Kontrollime, kas skript on k2ivitatud 6igel kujul
#Kontrollime, kas skript on käivitatud õigel kujul
#Kui on, defineerime muutuja kasutaja, mis sisaldab otsitavat kasutajanime.
#Kui on, defineerime muutuja kasutaja, mis sisaldab otsitavat kasutajanime.
#Kui ei ole, teatame kasutajale, mis kujul skript tuleb k2ivitada ja v2ljume skritist
#Kui ei ole, teatame kasutajale, mis kujul skript tuleb käivitada ja väljume skritist
if len(sys.argv) == 2:
if len(sys.argv) == 2:
     kasutaja = (sys.argv[1])
     kasutaja = (sys.argv[1])
else:
else:
     print "K2ivita skript kujul: python %s kasutajanimi"%(sys.argv[0])
     print "Käivita skript kujul: python %s kasutajanimi"%(sys.argv[0])
     exit(0)
     exit(0)
 
#Kontrollime, kas skript on k2ivitatud root 6igustes.
#Kontrollime, kas skript on käivitatud root õigustes.
#Kui ei ole, teatame kasutajale, et k2ivita skript  uuesti vastavates 6igustes.
#Kui ei ole, teatame kasutajale, et käivita skript  uuesti vastavates õigustes.
if os.getuid() != 0:
if os.getuid() != 0:
     print "Käivita skript root õigustes!"  
     print "Käivita skript root õigustes!"  
     exit(0)
     exit(0)
 
#Avame /etc/shadow faili, kust saame kontrollida, kas kasutaja on lukus.
#Avame /etc/shadow faili, kus saame kontrollida, kas kasutaja on lukus.
fh=open("/etc/shadow")
fh=open("/etc/shadow")
 
#Abimuutuja, millega saame kontrollida, kas kasutaja on olemas.
#Abimuutuja, millega saame kontrollida, kas kasutaja on olemas.
i=0;
i=0;
 
#K2ime foriga k6ik read l2bi.
#Käime foriga kõik read läbi.
#Kui kasutaja on reas olemas, kontrollime, kas kasutaja on lukus.
#Kui kasutaja on reas olemas, kontrollime, kas kasutaja on lukus.
#Kui reas on symbolid :! koos, siis on kasutaja lukus.
#Kui reas on symbolid :!, siis on kasutaja lukus.
 
for line in fh.readlines():
for line in fh.readlines():
     if "%s"%(kasutaja) in line :
     if kasutaja in line :
i=i+1
i=i+1
if ":!" in line :
if ":!" in line :
    print "Kasutaja on lukus"
    print "Kasutaja %s on lukus"%(kasutaja)
else :
else :
    print "Kasutaja pole lukus"
    print "Kasutaja %s pole lukus"%(kasutaja)
 
#Kui i v22rtus on 0, siis kasutajat pole olemas.
#Kui i väärtus on 0, siis kasutajat pole olemas.
#Kui i v22rtus on 1, siis kasutaja on oleas.
#Kui i väärtus on 1, siis kasutaja on oleas.
if (i==0):
if (i==0):
     print "Kasutajat ei ole olemas."
     print "Kasutajat %s ei ole olemas."%(kasutaja)
 
#Sulgeme faili.     
#Sulgeme faili.     
fh.close()
fh.close()
</source>


=Bash=
=Bash=

Latest revision as of 18:15, 23 May 2011

Python

Ülesanne

  1. Skript kontrollib, kas kasutaja on lukus.
  2. Skript tuleb käivitada root õigustes, kui õigused puuduvad, väljutakse skriptist
  3. Skript tuleb käivitada kujul: python is_locked.py kasutajanimi. Kui ei käivitata, teatakse kasutajale, kuidas tuleb skript käivitada.
  4. Kui kasutaja on lukus, siis öeldakse, et kasutaja on lukus.
  5. Kui kasutaja ei ole lukus, sis öeldakse, et kasutaja ei ole lukus.
  6. Kui kasutajat ei eksisteeri, siis öeldakse, et kasutajat ei ole olemas

Lahendus

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Autor:Andres Mill A22 amill@itcollege.ee
#Versioon:0.1
#Viimane muutmise kuupäev:23.05.2011
#Skript kontrollib, kas kasutaja on lukus.
 
#Impordime sys ja os moodulid
#sys moodulit kasutame k2surea parameetrite lugemiseks.
#os moodulit kasutame õiguste kontrolliks.
import sys
import os
 
#Kontrollime, kas skript on käivitatud õigel kujul
#Kui on, defineerime muutuja kasutaja, mis sisaldab otsitavat kasutajanime.
#Kui ei ole, teatame kasutajale, mis kujul skript tuleb käivitada ja väljume skritist
if len(sys.argv) == 2:
    kasutaja = (sys.argv[1])
else:
    print "Käivita skript kujul: python %s kasutajanimi"%(sys.argv[0])
    exit(0)
 
#Kontrollime, kas skript on käivitatud root õigustes.
#Kui ei ole, teatame kasutajale, et käivita skript  uuesti vastavates õigustes.
if os.getuid() != 0:
    print "Käivita skript root õigustes!" 
    exit(0)
 
#Avame /etc/shadow faili, kus saame kontrollida, kas kasutaja on lukus.
fh=open("/etc/shadow")
 
#Abimuutuja, millega saame kontrollida, kas kasutaja on olemas.
i=0;
 
#Käime foriga kõik read läbi.
#Kui kasutaja on reas olemas, kontrollime, kas kasutaja on lukus.
#Kui reas on symbolid :!, siis on kasutaja lukus.
 
for line in fh.readlines():
    if kasutaja in line :
	i=i+1
	if ":!" in line :
	    print "Kasutaja %s on lukus"%(kasutaja)
	else :
	    print "Kasutaja %s pole lukus"%(kasutaja)
 
#Kui i väärtus on 0, siis kasutajat pole olemas.
#Kui i väärtus on 1, siis kasutaja on oleas.
if (i==0):
    print "Kasutajat %s ei ole olemas."%(kasutaja)
 
#Sulgeme faili.    
fh.close()

Bash

Ülesanne

Teha skript user_in_group.sh mis kontrollib, kas etteantud kasutaja kuulub etteantud gruppi.
Tagastab 0, kui kuulub ja 1 kui ei kuulu.
user_in_group.sh <kasutaja> <grupp>

Lahendus

#!/bin/bash
#Author: Andres Mill
#Rühm: A22
#Version: 0.1
#Viimane muutmise kuupäev: 11.05.2011
#Skript kontrollib, kas kasutaja kuulub etteantud gruppi või mitte.
 
 
#Kontrollime mitme parameetriga programm on käivitatud,
#kui parameetrite arv ei ole kaks,siis väljutakse programmist
#ja andakse teada, et käivita skript uuesti sellisel kujul.
 
if [ $# -ne 2 ]; then
echo "Käivita skript uuesti kahe parameetiga kujul $(basename $0) kasutaja grupp"
exit 1
fi
 
#Vaatame, mis grupidesse kasutaja kuulub.
#Vaatame, kas kasutaja kuulub gruppi
#Kui grepimise tulemusel ridade arv ei ole null, antakse teada,et kasutaja kuulub gruppi.
#Kui grepimisega leitud ridade arv on null teatatakse, et kasutaja ei kuulu gruppi.
 
if [ $( groups $1|grep $2 -c) != 0 ]; then
exit 0

else
exit 1
fi