User:Amill: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Amill (talk | contribs)
Amill (talk | contribs)
 
Line 10: Line 10:
==Lahendus==
==Lahendus==
<source lang="python">
<source lang="python">
#!/usr/bin/python
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
#Autor:Andres Mill A22 amill@itcollege.ee
#Autor:Andres Mill A22 amill@itcollege.ee
Line 15: Line 16:
#Viimane muutmise kuupäev:23.05.2011
#Viimane muutmise kuupäev:23.05.2011
#Skript kontrollib, kas kasutaja on lukus.
#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.
Line 21: Line 22:
import sys
import sys
import os
import os
 
#Kontrollime, kas skript on käivitatud õigel 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.
Line 30: Line 31:
     print "Käivita 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 käivitatud root õigustes.
#Kontrollime, kas skript on käivitatud root õigustes.
#Kui ei ole, teatame kasutajale, et käivita skript  uuesti vastavates õigustes.
#Kui ei ole, teatame kasutajale, et käivita skript  uuesti vastavates õigustes.
Line 36: Line 37:
     print "Käivita skript root õigustes!"  
     print "Käivita skript root õigustes!"  
     exit(0)
     exit(0)
 
#Avame /etc/shadow faili, kus 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;
 
#Käime foriga kõik read läbi.
#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 :!, siis on kasutaja lukus.
#Kui reas on symbolid :!, siis on kasutaja lukus.
 
for line in fh.readlines():
for line in fh.readlines():
     if kasutaja in line :
     if kasutaja in line :
i=i+1
i=i+1
if ":!" in line :
if ":!" in line :
    print "%s on lukus"%(kasutaja)
    print "Kasutaja %s on lukus"%(kasutaja)
else :
else :
    print "%s pole lukus"%(kasutaja)
    print "Kasutaja %s pole lukus"%(kasutaja)
 
#Kui i väärtus on 0, siis kasutajat pole olemas.
#Kui i väärtus on 0, siis kasutajat pole olemas.
#Kui i väärtus on 1, siis kasutaja on oleas.
#Kui i väärtus on 1, siis kasutaja on oleas.
if (i==0):
if (i==0):
     print "%s ei ole olemas."%(kasutaja)
     print "Kasutajat %s ei ole olemas."%(kasutaja)
 
#Sulgeme faili.     
#Sulgeme faili.     
fh.close()
fh.close()

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