User:Amill

From EIK wiki

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