Linuxi administreerimine eksamiabi 2014: Difference between revisions
Line 261: | Line 261: | ||
==Praktikal olev tudeng tegi katki puppet paigalduse (ja on endaga täitsa rahul) Tehke korda ja selgitage, mida ta valesti tegi.== | ==Praktikal olev tudeng tegi katki puppet paigalduse (ja on endaga täitsa rahul) Tehke korda ja selgitage, mida ta valesti tegi.== | ||
= 4. | = 4. Linux paigalduse parandamine (raske) = | ||
Kui on antud vmdk või vdi failina ketas või katki tehtud teise virtuaalmasina ketas, siis VirtualBoxis külge ühendamiseks tee järgnev: | Kui on antud vmdk või vdi failina ketas või katki tehtud teise virtuaalmasina ketas, siis VirtualBoxis külge ühendamiseks tee järgnev: |
Revision as of 13:18, 12 January 2014
Eksami näidiste lehe Sisukord
Eksami ajal saab veel kaitsta laboreid, kuid soovitav on need enne eksamit ära kaitsta, kuna eksam on päris pingeline.
Linux eksam on praktiline, koosneb neljast osast:
#1._Puppet_abil_tuleb_teha_lihtsaid_asju (kasutaja, kaust/fail teatud sisu ja õigustega, paigaldada pakke) 10p 10min
#2._Puppet_abil_teenuse_seadistamine_keerulisem 15p 15min (kui apache seadistamine, siis eemaldage paki apache kirjeldus)
#3._Linux_paigalduse_parandamine_.28lihtne.29 15p 10min
#4._Linux_paigalduse_parandamine_.28raske.29 9p 25min
1. Näiteülesanded:
- Loo kasutaja kjk212 koos kodukasutaga
- Paigalda pakk apache2
- Paigalda pakk htop
- Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
- Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha.
2. Näiteküsimused
- Paigalda www.planet.zz virtualhost (nagu aine wikis kirjas)
- Paigalda ntp teenus (aine wikist)
- Paigalda BIND teenus (aine wikist) http://enos.itcollege.ee/~mernits/Linux%20administreerimine/bind.ogv Nimeserveri seadistamine BIND9 näitel
3. Linux paigalduse parandamine (lihtne) 15min
- Teil ununes root parool ära ja student kasutaja pole administraatorite grupis. (vana admin läks töölt ära ja parooli keegi ei mäleta)
- Teie server tõsteti valesse VLANi (virtualboxis teise võrku)
- Teie server tõsteti teise võrku, mille IP on teine ja võrgu administraator unustas teile seda öelda ja läks puhkusele (tehke nii, et töötaks)
- Praktikal olev tudeng rikkus ära faili, kus määratakse alglaadimisel ühendatavad kettajaod ja failisüsteemid
- Praktikal olev tudeng tegi katki puppet paigalduse (ja on endaga täitsa rahul) Tehke korda ja selgitage, mida ta valesti tegi.
4. Linux paigalduse parandamine (raske) 20min
- Praktikal olev tudeng rikkus ära kõvaketta kettajagude tabeli. Taastage süsteem.
- Praktikal olev tudeng kustustas ühelt kettalt palju pilte ja kettajagude tabeli. Taastage pildid.
- Praktikal olev tudeng "konfigureeris" ehk saboteeris teie labor 2 teenuse ära - Tehke korda ja selgitage, mida ta valesti tegi.
1. Puppet abil tuleb teha lihtsaid asju
Loo kasutaja kjk212 koos kodukasutaga
Loo serveris /etc/puppet/manifests/classes/users.pp fail, sisuga
class users {
user { 'kjk212':
ensure => present,
uid => '1500',
gid => 'root',
shell => '/bin/sh',
home => '/home/kjk212',
managehome => true,
}
}
Failis '/etc/puppet/manifests/site.pp'
lisa 'include users' kliendi node alla
import "classes/*"
node 'desktop.planet.zz' inherits basenode {
include users
}
Paigalda pakk apache2 ja htop ning eemalda cowsay
Loo serveris /etc/puppet/manifests/classes/users.pp fail sisuga
class tarkvara {
package { ['htop', 'apache2']: ensure => latest, }
package { 'cowsay': ensure => absent,}
}
Failis '/etc/puppet/manifests/site.pp'
lisa 'include tarkvara' kliendi node alla
import "classes/*"
node 'desktop.planet.zz' inherits basenode {
include tarkvara
}
Tekita fail, mille sisu on
Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha
Loo serveris /etc/puppet/manifests/classes/fail.pp , sisuga
class lihtne {
file { "/var/eksam/yl1.txt":
ensure => present,
mode => 760,
owner => kjk212,
group => audio,
content => "Tekita fail, mille sisu on selle ülesande tekst asukohta /var/eksam/yl1.txt
Sea loodud faili omanikuks eespool loodud kasutaja ja grupiks audio. Sea õigused selliselt, et kasutaja saab kõike teha ja grupp lugeda/kirjutada. Teised ei saa midagi teha."
}
}
Kui kausta pole olemas, mille sisse fail tuleb luua lisa peale classi algust class lihtne { veel read
file { [ "/var/eksam/" ]:
ensure => directory,
}
Failis '/etc/puppet/manifests/site.pp'
lisa 'include lihtne' kliendi node alla
import "classes/*"
node 'desktop.planet.zz' inherits basenode {
include lihtne
}
2. Puppet abil teenuse seadistamine keerulisem
Paigalda www.planet.zz virtualhost
Esmalt lisa apache konfimise moodul
puppet module install puppetlabs/apache
ja host faili modimiseks
puppet module install puppetlabs/stdlib
Veendu, et mujal ei ole puppetis apache tarkvara pailgalduse käsku
Faili '/etc/puppet/manifests/classes/apache.pp' sisuks pane
class apachesrv {
class { 'apache': }
apache::vhost { 'www.planet.zz':
port => '80',
docroot => '/var/www/www.planet.zz',
}
file { "/var/www/www.planet.zz/index.html":
ensure => present,
content => "www.planet.zz\n<br\n>Server tootab\n",
}
}
Kui pole dns-i, siis saab lisada hosts faili vastava rea lisades puppetis apache konfi lõppu enne } read
file_line { 'host_planet':
ensure => present,
line => "127.0.0.1 www.planet.zz",
path => '/etc/hosts',
}
Failis '/etc/puppet/manifests/site.pp'
lisa 'include apachesrv' kliendi node alla
import "classes/*"
node 'desktop.planet.zz' inherits basenode {
include apachesrv
}
Paigalda ntp teenus
Esmalt lisa ntp konfimise moodul
puppet module install puppetlabs/ntp
Faili '/etc/puppet/manifests/classes/ntpsrv.pp' sisuks pane
class ntpserver {
class { '::ntp':
servers => [ 'ntp.eenet.ee', 'ntp.ut.ee' ],
panic => false, #Hea kasutada virtuaalmasinate puhul.
}
}
Failis '/etc/puppet/manifests/site.pp'
lisa 'include ntpsrv' kliendi node alla
import "classes/*"
node 'desktop.planet.zz' inherits basenode {
include ntpserver
}
Paigalda BIND teenus
Endiselt puudub mõistlikult töötav lahendus.
3. Linux paigalduse parandamine (lihtne)
Teil ununes root parool ära ja student kasutaja pole administraatorite grupis. (vana admin läks töölt ära ja parooli keegi ei mäleta)
Reset root password (Ubuntu Linux) without CD[1]
Algkäivitamise ajal hoia all Shift või tee aktiivseks muudmoodi GRUB alglaadijas Ubuntu xxx (recovery mode) rida (nool alla). Ära vajuta [Enter]!
Vajuta [e] selle rea muutmiseks
Otsi rida, mis sisaldab linux /boot/vmlinuz-3.2.0-18-generic root=UUID=b8b64ed1-ae94-43c6-92\d2-a19dfd9a727e ro recovery nomodeset
Asenda ro recovery nomodeset -> rw init=/bin/bash
Vihje: US klaviatuuril '=' on `´ nupp ning '/' on -_
Vajuta käivitamiseks [F10]
Arvuti käivitub ning logitakse sisse juurkasutaja õigustes.
Parooli vahetamiseks sisesta käsk
passwd
ning lähtesta root parool. Tee serverile reset.
Teie server tõsteti valesse VLANi (virtualboxis teise võrku)
Teie server tõsteti teise võrku, mille IP on teine ja võrgu administraator unustas teile seda öelda ja läks puhkusele (tehke nii, et töötaks)
Praktikal olev tudeng rikkus ära faili, kus määratakse alglaadimisel ühendatavad kettajaod ja failisüsteemid
Katki tehti /etc/fstab
Kui on antud katki tehtud ketas, siis tuleb see eelnevalt külge ühendada: https://wiki.itcollege.ee/index.php/Linuxi_administreerimine_eksamiabi_2014#4._Linux_paigalduse_parandamine_.28raske.29
Kontrollida, mis nime all lisatud ketas süsteemis on
fdisk -l
Seejärel tuleb ketas mountida ajutisse kausta
mkdir /tmp/eksam mount /dev/sdb1 /tmp/eksam
/dev/sdb1 on lisatud ketta esimene partitsioon
Katki tehtud töös oleva arvuti fstab parandamiseks ava see käsuga:
nano /etc/fstab
või kui tegu lisatud ja mountitud kettaga:
nano /tmp/eksam/etc/fstab
Töötav fstab võiks välja näha selline:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=9edff746-7198-40f6-bcf4-c0f6a1af8ab9 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=afd69f4d-5c96-4d75-a298-68e54c4607bd none swap sw 0 0
UUID=... asemel võib kasutada ka seadme nime /dev/sda1, /dev/sdb2 jne Seega võib töötav rida välja näha ka selline
/dev/sdb1 /var/lab ext4 defaults 0 0
- <file system>UUID viitab konkreetsele kettale, /dev/sdb1 viitab tegelikult füüsilisele ühenduspesale
- <mount point> - kuhu on seade külge ühendatud, juurkaust '/', saaleala 'none' jne
- <type> failisüsteemi tüüp, võib olla auto, üritatakse ära arvata, ext3/ext4/swap jne
- <options> noexec, readonly, acl, trim (ssd) jne
- <dump> legacy pärast
- <pass> kas teha kettakontrolli iga x käivituse tagant
Praktikal olev tudeng tegi katki puppet paigalduse (ja on endaga täitsa rahul) Tehke korda ja selgitage, mida ta valesti tegi.
4. Linux paigalduse parandamine (raske)
Kui on antud vmdk või vdi failina ketas või katki tehtud teise virtuaalmasina ketas, siis VirtualBoxis külge ühendamiseks tee järgnev:
Virtuaalmasin lülita välja
!! Kui on kasutusel snapshotid, siis tuleb teha katkisest masinast kas clone või kõik snapshotid kustutada, et alles jääks vaid üks vmdk fail. Vastasel korral ei ole võimalik õiget virtuaalmasina ketast järgmises punktis külge ühendada !!
Machine->Settings Storage->Controller: Sata->Add a hard disk (parempoolne pluss nupuga ikoon)
Choose existing disk
Näita kätte õppejõult saadud fail või teise virtuaalmasina ketas (kloonitud masina või ilma snapshotita masina!)
OK
Käivita virtuaalmasin
Kontrolli, et arvuti näitab lisatud ketast (juurkasutaja õigustes!)
fdisk -l
Uus ketas peaks tekkima /dev/sdb või sdc-na.
Kui partitsioonitabel on katki peaks tulema ka teade "Disk /dev/sdb doesn't contain a valid partition table"
dd abil kirjutati esimesed 512 baiti üle
- testdisk abil taastada partitsioonitabel vt järgmine peatükk
- taastada GRUB alglaadur kas käsitsi töötava ketta pealt kopeerides või 'grub-install' käsu abil:
1) UNIX / Linux: Copy Master Boot Record (MBR) [2] - ei tööta?! kopeerime bootstrapi töötavalt kettalt faili
dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1
kopeerime töötava ketta bootstrap osa katkisele kettale
dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1
2) Ühenda ketas mnt kausta [3]
mount /dev/sdb1 /mnt
Installi grubi bootloader
grub-install --boot-directory=/mnt/boot /dev/sdb
ühenda ketas lahti tagasi
umount /dev/sdb1
Praktikal olev tudeng rikkus ära kõvaketta kettajagude tabeli. Taastage süsteem
How to recover partitions and data using Linux - Tutorial[4]
Tiri testdisk[5]
apt-get install testdisk
Käivita testdisk
testdisk
Loo uus logifail [Create]
Vali kettaseade, mida parandada (/dev/sdb)
Vali partitsioonitabeli tüüp [Intel/PC]
Vali [Analyse]
[Quick Search]
Arvatavasti pole tegu Vista või uuema all tehtud partitsiooniga, seega vasta 'N'
Viimases reas näitab leitud partitsiooni infot Vajuta Enter ja siis Write
fdisk -l
peaks nüüd näitama taastatud partitsiooni.
Et ilma taaskäivituseta parandatud kettale ligi pääseda, siis tuleb fdisk abil partitsiooniinfo kettale sünkroniseerida.
fdisk /dev/sdb w
Praktikal olev tudeng kustustas ühelt kettalt palju pilte ja kettajagude tabeli. Taastage pildid.
Paigalda photorec [6] (testdisk paketis)
apt-get install testdisk
Käivita photorec
photorec
Vali õige kettaseade (/dev/sdb) [Proceed]
[Search]
Vali 'unknown' partitsioon
Vali failisüsteemi tüüp [ext2/ext3]
Vali kaust kuhu salvestatakse taastatud failid ja vajuta [C]
Taastatud failid asuvad valitud kaustas alamkaustas [recup_dir.1] vms.
Praktikal olev tudeng "konfigureeris" ehk saboteeris teie labor 2 teenuse ära - Tehke korda ja selgitage, mida ta valesti tegi.
Personaalne..
Kasutatud materjal
- ↑ http://www.faqforge.com/linux/reset-root-password-ubuntu-linux-without-cd
- ↑ http://www.cyberciti.biz/faq/howto-copy-mbr/
- ↑ http://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/
- ↑ http://www.dedoimedo.com/computers/linux-data-recovery.html
- ↑ http://www.cgsecurity.org/wiki/TestDisk
- ↑ http://www.cgsecurity.org/wiki/PhotoRec