User:Uluuk: Difference between revisions
From ICO wiki
Jump to navigationJump to search
Created page with '==Quest4== <source lang="bash"> #!/bin/bash #author: Urmas Luuk #group: A22 #version: 0.1 echo "" #kirjutan tĆ¼Ć¼p tekstid muutujasse: textHowToUse="Skripti kƤivitamiseks…' |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== | ==Quest 4 - Bash== | ||
<source lang="bash"> | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
Line 151: | Line 151: | ||
echo "valmis!" | echo "valmis!" | ||
exit 0; | exit 0; | ||
</source> | |||
==Quest 5 - Python== | |||
<source lang="python"> | |||
#!/usr/bin/python | |||
# -*- coding: utf-8 -*- | |||
# author: Urmas Luuk | |||
# group: A22 | |||
# version: 0.1 | |||
import sys | |||
import os | |||
import os.path | |||
import subprocess as sp | |||
print "Antud skript kontrollib faili olemasolu ja sellele antud õigusi" | |||
#Kontrollin kas on sisestatud piisavalt parameetreid | |||
if len(sys.argv) <= 2: | |||
print "Argumendid määramata" | |||
print "Õigused tuleb kirjutada tekstina nt. rw-r--rwx" | |||
print "%s <sisendfail> <õigused>" %(sys.argv[0]) | |||
exit() | |||
#Määran sisestatud parameetritele muutujad. | |||
inputPermission = sys.argv[2] | |||
inputFile = sys.argv[1] | |||
#Kontrollin kas teine paramteer on tekst ja/või õige pikkusega, kui ei ole siis exit 0 | |||
if (inputPermission.isdigit()) or (len(inputPermission) != 9): | |||
print "Vigane argument: %s" % (inputPermission) | |||
print "Õigused tuleb kirjutada tekstina nt. \"rw-r--rwx\"" | |||
print "%s <sisendfail> <õigused>" %(sys.argv[0]) | |||
exit(0) | |||
#Leian sisendfaili õigused | |||
popen = sp.Popen(["ls", "-l", inputFile], stdout=sp.PIPE) | |||
sout, serr = popen.communicate() | |||
inputFilePermission = sout[:10][1:] | |||
#Kontrollin kas sisestatud fail eksisteerib, kui ei siis exit 1 | |||
if (not os.path.exists(inputFile)) or (os.path.isdir(inputFile)): | |||
print "Ei leitud %s faili" % (inputFile) | |||
exit(1) | |||
print "Sisestatud õigused:" + inputPermission | |||
print "Faili õigused: " + inputFilePermission | |||
#Kontrollin kas sisestatud õigused klapivad faili õigustega. | |||
if inputFilePermission[0:3] != inputPermission[0:3]: | |||
print "2" | |||
exit(2) | |||
elif inputFilePermission[3:6] != inputPermission[3:6]: | |||
print "3" | |||
exit(3) | |||
elif inputFilePermission[6:9] != inputPermission[6:9]: | |||
print "4" | |||
exit(4) | |||
</source> | |||
==Powershelli kodutöö== | |||
<source lang="Powershell"> | |||
#Author: Urmas Luuk | |||
#Group: A22 | |||
#Version: 0.3 | |||
# | |||
#Skript kontrollib, kas eksisteerib antud kasutajat või mitte, | |||
#kui ei siis pakub võimalust seda luua(antud kasutajat lisatakse ka siis administraatori gruppi). | |||
param ([string] $reqUser) | |||
#Kontrollin, kas kausutaja on käivitanud skripti admini õigustega. | |||
if(-NOT([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { | |||
Write-Warning "Sa pead olema administraatori õigustega, et käivitada antud skripti!" | |||
exit 1 | |||
} | |||
#Vaatan kas parameetrisse on määratud kasutajanimi | |||
if ($reqUser -eq "") | |||
{ | |||
Write-Host "Kasutaja nimi tuleb kirjutada parameetrisse. Näide: "$MyInvocation.MyCommand.Name" <kasutajanimi>" | |||
exit 1 | |||
} | |||
$computer = [ADSI]("WinNT://"+ $env:COMPUTERNAME) | |||
$Users = $computer.psbase.children | where{$_.psbase.schemaclassname -eq "User"} | |||
#Kontrollin, kas eksisteerib antud kasutaja | |||
foreach ($member in $Users.psbase.syncroot) | |||
{ | |||
if ($member.name -eq $reqUser) | |||
{ | |||
Write-Host "Kasutaja ""$reqUser"" on olemas" | |||
exit 0 | |||
} | |||
} | |||
#Küsin kasutaja käest, kas tahab luua uut kasutajat | |||
Write-Host "Ei leitud kasutajat:"$reqUser | |||
$confirm = Read-Host "Kas luua antud kastuaja? (jah - y)" | |||
if ($confirm -ne "y") | |||
{ | |||
exit 1 | |||
} | |||
#küsin kasutaja käest uue kasutaja parooli. | |||
$match=0 | |||
do | |||
{ | |||
$password = Read-Host "Kirjuta parool: " | |||
$confirm = Read-Host "Korda parooli: " | |||
if ($password -eq $confirm) | |||
{ | |||
$match=1 | |||
} | |||
else | |||
{ | |||
Write-Host "Salasõnad ei kattu, proovi uuesti" | |||
} | |||
} | |||
while ($match -eq 0) | |||
#loon uue kasutaja | |||
$createUser = $computer.Create("User", $reqUser) | |||
$createUser.SetPassword($password) | |||
$createUser.SetInfo() | |||
Write-Host "Loodi uus kasutaja ""$reqUser""" | |||
#küsin kasutaja käest kas lisada ka kasutaja admini gruppi. | |||
$confirm = Read-Host "Kas lisada antud kasutaja ka administratori gruppi? (jah - y)" | |||
if ($confirm -ne "y") | |||
{ | |||
exit 1 | |||
} | |||
#Lisan loodud kasutaja Administrator gruppi. | |||
$group = [ADSI]("WinNT://" + $env:COMPUTERNAME + "/Administrators,group") | |||
$group.add("WinNT://" + $env:COMPUTERNAME + "/$reqUser") | |||
Write-Host "Lisati kasutaja ""$reqUser"" Administratori gruppi" | |||
</source> | </source> |
Latest revision as of 17:48, 8 June 2011
Quest 4 - Bash
#!/bin/bash
#author: Urmas Luuk
#group: A22
#version: 0.1
echo ""
#kirjutan tĆ¼Ć¼p tekstid muutujasse:
textHowToUse="Skripti kƤivitamiseks toimi jƤrgnevalt: $(basename $0) <ketas>"
textSample="NƤide: trash.sh /dev/sdb"
#Kontrollib, kas kasutajal on juurkasutaja Ƶigused
if [ $UID -ne 0 ]; then
echo "KƤivita antud skripti $(basename $0) juurkasutaja Ƶigustes"
exit 1
fi
echo "Antud skript Ć¼hendab lahti etteantud kettajaod ja saalealad"
echo "ning kustutab kƵik partatsioonid!"
echo ""
#Kontrollib, kas on esimene parameeter mƤƤratud ja kui ei ole siis Ƶpetab kuidas mƤƤrata
#Kui on mƤƤratud siis kontrollib kas selline ketas on olemas
if [ -z $1 ]
then
echo "$textHowToUse"
echo "$textSample"
exit 1
fi
#Informeerib kastuajat, et antud skript kasutab ainult Ć¼hte parameetrit
#ja Ć¼lejƤƤnuid ignoreeritakse
if [ $# -gt 1 ]; then
echo "Hoiatus! Ainult Ć¼hte parameetrit vajatakse, Ć¼lejƤƤnuid ignoreeritakse"
echo ""
fi
#Kontrollib kas kasutaja sisestatud tekstile vastab ka ketast
if [ -z "$(fdisk -l | grep -w $1)" ]; then
echo "Ei leitud $1 ketast"
echo ""
echo "$textHowToUse"
echo "$textSample"
echo ""
exit 1
fi
#kirjutan kasutaja sisestatud vƤƤrtuse muutujasse
device=$1
#kontrollib kas kettal on tĆ¼hi
if [ "$(fdisk -l $device | grep -c $device)" -le 1 ]; then
echo "$device ei ole Ć¼htegi partatsiooni"
echo ""
exit 1
fi
#Hoiatab mida antud skript teeb ja kĆ¼sib kasutajalt kas soovib jƤtkata
echo "HOIATUS! Ćhnedatakse lahti $device kettajaod ja saalealad"
echo " ning kustutatakse kƵik partatsioonid Ƥra"
echo ""
echo ""
read -p "Kas soovid jƤtkata (y - jah)?" -n 1
echo ""
if [[ $REPLY =~ ^[^Yy]$ ]]
then
echo "Skripti protsess ketkestatud"
echo ""
exit 2;
fi
echo "Alustab kettajagude lahtiĆ¼hendamist:"
#Kontrollitakse mis ketta partatsioonid on kĆ¼lge Ć¼hendatud ja Ć¼hendab need lehti
for result in "$(mount -s | grep $device)"; do
if [ -n "$result" ]; then
set -- $result
dev=$1
shift
echo "> unmount: $dev"
umount $dev
wait
fi
done
echo "valmis!"
echo "Alustab swapide lahti Ć¼hendamist:"
#Kontrollib mis saale alad on kĆ¼lge Ć¼hendatud ja Ć¼hendab need lahti
for result in "$(swapon -s | grep $device)"; do
if [ -n "$result" ]; then
set -- $result
dev=$1
shift
echo "> Swapoff: $dev"
swapoff $dev
wait
fi
done
echo "valmis!"
echo ""
#Hoiatus enne ketta partatsioonide kustutamist
echo "Alustatakse partatsioonide kustutamisega"
echo ""
read -p "Kas soovid jƤtkata (y - jah)" -n 1
echo ""
if [[ $REPLY =~ ^[^Yy]$ ]]
then
mount -a
wait
swapon -a
wait
echo "Skripti protsess katkestati"
echo "Kettad Ć¼hendati tagasi kĆ¼lge"
echo ""
exit 2;
fi
if [ -n "$(fdisk -l $device | grep -w ${device}1)" ]; then
fdisk "$device" <<EOF1
d
1
w
EOF1
fi
if [ -n "$(fdisk -l $device | grep -w ${device}2)" ]; then
fdisk "$device" <<EOF2
d
2
w
EOF2
fi
if [ -n "$(fdisk -l $device | grep -w ${device}3)" ]; then
fdisk "$device" <<EOF3
d
3
w
EOF3
fi
if [ -n "$(fdisk -l $device | grep -w ${device}4)" ]; then
fdisk "$device" <<EOF4
d
4
w
EOF4
fi
echo "valmis!"
exit 0;
Quest 5 - Python
#!/usr/bin/python
# -*- coding: utf-8 -*-
# author: Urmas Luuk
# group: A22
# version: 0.1
import sys
import os
import os.path
import subprocess as sp
print "Antud skript kontrollib faili olemasolu ja sellele antud õigusi"
#Kontrollin kas on sisestatud piisavalt parameetreid
if len(sys.argv) <= 2:
print "Argumendid määramata"
print "Õigused tuleb kirjutada tekstina nt. rw-r--rwx"
print "%s <sisendfail> <õigused>" %(sys.argv[0])
exit()
#Määran sisestatud parameetritele muutujad.
inputPermission = sys.argv[2]
inputFile = sys.argv[1]
#Kontrollin kas teine paramteer on tekst ja/või õige pikkusega, kui ei ole siis exit 0
if (inputPermission.isdigit()) or (len(inputPermission) != 9):
print "Vigane argument: %s" % (inputPermission)
print "Õigused tuleb kirjutada tekstina nt. \"rw-r--rwx\""
print "%s <sisendfail> <õigused>" %(sys.argv[0])
exit(0)
#Leian sisendfaili õigused
popen = sp.Popen(["ls", "-l", inputFile], stdout=sp.PIPE)
sout, serr = popen.communicate()
inputFilePermission = sout[:10][1:]
#Kontrollin kas sisestatud fail eksisteerib, kui ei siis exit 1
if (not os.path.exists(inputFile)) or (os.path.isdir(inputFile)):
print "Ei leitud %s faili" % (inputFile)
exit(1)
print "Sisestatud õigused:" + inputPermission
print "Faili õigused: " + inputFilePermission
#Kontrollin kas sisestatud õigused klapivad faili õigustega.
if inputFilePermission[0:3] != inputPermission[0:3]:
print "2"
exit(2)
elif inputFilePermission[3:6] != inputPermission[3:6]:
print "3"
exit(3)
elif inputFilePermission[6:9] != inputPermission[6:9]:
print "4"
exit(4)
Powershelli kodutöö
#Author: Urmas Luuk
#Group: A22
#Version: 0.3
#
#Skript kontrollib, kas eksisteerib antud kasutajat või mitte,
#kui ei siis pakub võimalust seda luua(antud kasutajat lisatakse ka siis administraatori gruppi).
param ([string] $reqUser)
#Kontrollin, kas kausutaja on käivitanud skripti admini õigustega.
if(-NOT([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Warning "Sa pead olema administraatori õigustega, et käivitada antud skripti!"
exit 1
}
#Vaatan kas parameetrisse on määratud kasutajanimi
if ($reqUser -eq "")
{
Write-Host "Kasutaja nimi tuleb kirjutada parameetrisse. Näide: "$MyInvocation.MyCommand.Name" <kasutajanimi>"
exit 1
}
$computer = [ADSI]("WinNT://"+ $env:COMPUTERNAME)
$Users = $computer.psbase.children | where{$_.psbase.schemaclassname -eq "User"}
#Kontrollin, kas eksisteerib antud kasutaja
foreach ($member in $Users.psbase.syncroot)
{
if ($member.name -eq $reqUser)
{
Write-Host "Kasutaja ""$reqUser"" on olemas"
exit 0
}
}
#Küsin kasutaja käest, kas tahab luua uut kasutajat
Write-Host "Ei leitud kasutajat:"$reqUser
$confirm = Read-Host "Kas luua antud kastuaja? (jah - y)"
if ($confirm -ne "y")
{
exit 1
}
#küsin kasutaja käest uue kasutaja parooli.
$match=0
do
{
$password = Read-Host "Kirjuta parool: "
$confirm = Read-Host "Korda parooli: "
if ($password -eq $confirm)
{
$match=1
}
else
{
Write-Host "Salasõnad ei kattu, proovi uuesti"
}
}
while ($match -eq 0)
#loon uue kasutaja
$createUser = $computer.Create("User", $reqUser)
$createUser.SetPassword($password)
$createUser.SetInfo()
Write-Host "Loodi uus kasutaja ""$reqUser"""
#küsin kasutaja käest kas lisada ka kasutaja admini gruppi.
$confirm = Read-Host "Kas lisada antud kasutaja ka administratori gruppi? (jah - y)"
if ($confirm -ne "y")
{
exit 1
}
#Lisan loodud kasutaja Administrator gruppi.
$group = [ADSI]("WinNT://" + $env:COMPUTERNAME + "/Administrators,group")
$group.add("WinNT://" + $env:COMPUTERNAME + "/$reqUser")
Write-Host "Lisati kasutaja ""$reqUser"" Administratori gruppi"