User:Amill: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 9: Line 9:


==Lahendus==
==Lahendus==
<source lang="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.
Line 56: Line 62:
#Sulgeme faili.     
#Sulgeme faili.     
fh.close()
fh.close()
</source>


=Bash=
=Bash=

Revision as of 19:08, 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

# -*- 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 kasutaja 6iguste kontrolliks.
import sys
import os

#Kontrollime, kas skript on k2ivitatud 6igel kujul
#Kui on, defineerime muutuja kasutaja, mis sisaldab otsitavat kasutajanime.
#Kui ei ole, teatame kasutajale, mis kujul skript tuleb k2ivitada ja v2ljume skritist
if len(sys.argv) == 2:
    kasutaja = (sys.argv[1])
else:
    print "K2ivita skript kujul: python %s kasutajanimi"%(sys.argv[0])
    exit(0)

#Kontrollime, kas skript on k2ivitatud root 6igustes.
#Kui ei ole, teatame kasutajale, et k2ivita skript  uuesti vastavates 6igustes.
if os.getuid() != 0:
    print "Käivita skript root õigustes!" 
    exit(0)

#Avame /etc/shadow faili, kust saame kontrollida, kas kasutaja on lukus.
fh=open("/etc/shadow")

#Abimuutuja, millega saame kontrollida, kas kasutaja on olemas.
i=0;

#K2ime foriga k6ik read l2bi.
#Kui kasutaja on reas olemas, kontrollime, kas kasutaja on lukus.
#Kui reas on symbolid :! koos, siis on kasutaja lukus.

for line in fh.readlines():
    if "%s"%(kasutaja) in line :
	i=i+1
	if ":!" in line :
	    print "Kasutaja on lukus"
	else :
	    print "Kasutaja pole lukus"

#Kui i v22rtus on 0, siis kasutajat pole olemas.
#Kui i v22rtus on 1, siis kasutaja on oleas.
if (i==0):
    print "Kasutajat ei ole olemas."
   
#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