User:Amill
From ICO wiki
Python
Ülesanne
- Skript kontrollib, kas kasutaja on lukus.
- Skript tuleb käivitada root õigustes, kui õigused puuduvad, väljutakse skriptist
- Skript tuleb käivitada kujul: python is_locked.py kasutajanimi. Kui ei käivitata, teatakse kasutajale, kuidas tuleb skript käivitada.
- Kui kasutaja on lukus, siis öeldakse, et kasutaja on lukus.
- Kui kasutaja ei ole lukus, sis öeldakse, et kasutaja ei ole lukus.
- Kui kasutajat ei eksisteeri, siis öeldakse, et kasutajat ei ole olemas
Lahendus
- -*- coding: utf-8 -*-
- 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