User:Amill: Difference between revisions
From ICO wiki test
				
				
				Jump to navigationJump to search
				
				
|  Created page with '#!/bin/bash #author: Andres Mill #Ryhm: A22 #version: 0.1  #Kontrollime mitme parameetriga programm on k'ivitatud, #kui parameetrite arv ei ole kaks,siis v'ljutakse programmist #…' | |||
| (14 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| =Python= | |||
| ==Ülesanne== | |||
| #Skript kontrollib, kas kasutaja on lukus.<br> | |||
| #Skript tuleb käivitada ''root'' õigustes, kui õigused puuduvad, väljutakse skriptist<br> | |||
| #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.<br> | |||
| #Kui kasutaja ei ole lukus, sis öeldakse, et kasutaja ei ole lukus.<br> | |||
| #Kui kasutajat ei eksisteeri, siis öeldakse, et kasutajat ei ole olemas<br> | |||
| ==Lahendus== | |||
| <source lang="python"> | |||
| #!/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() | |||
| </source> | |||
| =Bash= | |||
| ==Ülesanne== | |||
| Teha skript user_in_group.sh mis kontrollib, kas etteantud kasutaja kuulub etteantud gruppi.<br> | |||
| Tagastab 0, kui kuulub ja 1 kui ei kuulu.<br> | |||
| user_in_group.sh <kasutaja> <grupp> <br> | |||
| ==Lahendus== | |||
| <source lang="bash"> | |||
| #!/bin/bash | #!/bin/bash | ||
| # | #Author: Andres Mill | ||
| # | #Rühm: A22 | ||
| # | #Version: 0.1 | ||
| #Viimane muutmise kuupäev: 11.05.2011 | |||
| #Kontrollime mitme parameetriga programm on  | #Skript kontrollib, kas kasutaja kuulub etteantud gruppi või mitte. | ||
| #kui parameetrite arv ei ole kaks,siis  | |||
| #ja andakse teada,  | |||
| #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 | if [ $# -ne 2 ]; then | ||
| echo " | echo "Käivita skript uuesti kahe parameetiga kujul $(basename $0) kasutaja grupp" | ||
| exit 1 | exit 1 | ||
| fi | 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 | else | ||
| exit 1 | |||
| fi   | fi   | ||
| </source> | |||
Latest revision as of 18:15, 23 May 2011
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
#!/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