Linux

Pascal de Bruijn

Kevin Moonen

Inhoudsopgave

Plan van Aanpak	1

Tijdsplanning	2

Distributie	3

De Installatie	4

De root user	6

KDE	9

Het beheren van users	11

Vi	13

Uitwisselbare media	14

Evaluatie	16

Bronnen	17

Plan van Aanpak

Om onze Linux opdracht successvol tot een eind te brengen hebben we deze opdracht verdeelt in de volgende fases:

Het controleren van de hardware op de Hardware Compatability List van Redhat, Inc. (http://hardware.redhat.com/hcl/).

Het installeren van TaoLinux (http://taolinux.org/) op de workstations.

Het toevoegen van een tweede root user.

Het uitpluizen van KDE.

Het beheren van users.

Het omgaan met de vi(1) editor.

Het gebruiken van uitwisselbare media zoals diskette's.

We hopen op deze manier de opdracht op een gestructureerde manier te kunnen uitvoeren.

Tijdsplanning

Wij denken onze tijd als volgt aan het project te gaan besteden:

	Maandag	Dinsdag	Woensdag
Les uur	1	2	3	4	5	1	2	3	4	5	1	2	3	4	5
Fase 1	#														
Fase 2	#	#													
Fase 3			#												
Fase 4				#											
Fase 5					#										
Fase 6						#									
Fase 7							#								

In praktijk is dit echter wat anders gebleken:

	Maandag	Dinsdag	Woensdag
Les uur	1	2	3	4	5	1	2	3	4	5	1	2	3	4	5
Fase 1	#														
Fase 2	#	#				#	#								
Fase 3			#					#							
Fase 4				#											
Fase 5					#				#						
Fase 6					#										
Fase 7					#										

Distributie

Wij hebben gekozen om TaoLinux 1.0 (u2) te gebruiken omdat TaoLinux is afgeleid van Redhat Enterprise Linux 3 (update 2). RHEL3 is een Linux distributie die door redhat speciaal is ontwikkelt voor bedrijfsgebruik. Het product heeft een extra lange beta periode gehad, en redhat garandeert updates voor 5 jaar sinds de release.

RHEL3 AS wordt samen met een SLA door Redhat, Inc. verkocht voor een bedrag van $1499,-. Omdat Redhat een 100% opensource bedrijf is, worden alle sources van RHEL3 gepubliceerd. Projecten zoals TaoLinux nemen deze sources en recompilen deze. Op de voorwaarde dat de Redhat logo's eruit verwijderd worden, mogen projecten zoals TaoLinux hun versie van RHEL3 legaal distribueren.

De Installatie

Vooraf de installatie hebben we eerst de hardware van de machine vergeleken met de hardware die aanwezig was op Redhat's HCL. Alle hardware was aanwezig en zou dus naar behoren moet functioneren.

Vlak na het booten van de installatie CDs, kregen we de optie om de inhoud van de CDs te verifieren. Dit hebben we gedaan, om verdere problemen met (bijvoorbeeld) slecht gebrande CDs te voorkomen.

In eerste instantie wordt wat algemene informatie gevraagt zoals wat voor een type toetsenbord en muis er gebruikt wordt. Ons toetsenbord en muis werd juist gedetecteerd, dus we hoefden niks te veranderen.

We kozen ervoor om een custom install te doen, omdat dit leerzamer zou zijn. Daarnaast gaf het ons ook wat extra controle over onze installatie.

Ook het partitioneren hebben we met de hand gedaan, volgens het volgende partitioneringsschema:

Device file	Mount Point	FS Type	Size
/dev/hda1	/boot	ext3	128MB
/dev/hda2		swap	256MB
/dev/hda3	/	ext3	max

Over het algemeen is het zwaar aan te raden om voor /boot en aparte partitie te maken. In het geval van een crash staat de kernel op een aparte partitie (waar zelfden schijf activiteit is), hierdoor is de kans dat de kernel toegankelijk blijft groter, en de kans dat het systeem na een crash boot groter.

In het geval van een server is het meestal ook verstandig om /var, /tmp en /home op aparte partities te zetten. Dit is hoofdzakelijk wegens voor ruimte inperking. /var bevat de log files, /tmp bevat temporary files, en /home bevat de user files, dit zijn allemaal locaties waar veel activiteit is, en waar snel grote files terecht kunnen komen. Door aparte partities te nemen, zullen deze files nooit de root (/) partitie vullen. Een volle root (/) partitie kan problemen tijdens het opstarten veroorzaken.

Nadat de installer klaar was met het kopieren van de files, werd de GRUB bootloader geinstalleerd.

Bij de netwerk configuratie hebben we de volgende instellingen gebruikt:

IP address:	192.168.1.1	192.168.1.2

Subnet mask:	255.255.255.0	255.255.255.0

Default gateway:	192.168.1.254	192.168.1.254

Host name:	workstation1	workstation 2

Domain name:	hszuyd.lan	hszuyd.lan

Daarnaast hebben we de ingebouwde firewall aan gezet. De tijdszone hebben we op Europa, Amsterdam gezet.

De tijdszone wordt bepaalt door het /etc/localtime bestand, wat bij de meeste distrubuties een symbolische link is naar een bestand in /usr/share/zoneinfo, in ons geval /usr/share/zoneinfo/Europe/Amsterdam.

De root user

Een tweede root user

Linux volgt streng de UNIX systeem architectuur. Dus bij Linux worden alle users geidentificeerd met een User ID (uid), waaraan (voor het gemak van de gebruiker) een naam gekoppelt wordt. Gebruikers worden normaal toegevoegt met behulp van de useradd(8) als volgt:

# useradd -u 0 -g root -d /home/toor -s /bin/bash -c toor -m -p test toor

useradd: uid 0 is not unique

Deze reactie is vrij logisch, uid-username paren horen eigenlijk uniek te zijn. Of de distributie dit nu toelaat of niet, twee users met hetzelfde uid is not-done.

Maar Linux zou Linux niet zijn als we dit niet met grof geweld zouden kunnen doen. Linux bewaart zijn gebruikers informatie in twee files /etc/passwd and /etc/shadow.

In Linux staan alle configuratie bestanden die betrekking hebben over het hele systeem in /etc. Alle configuratie bestanden in Linux zijn textfiles. Dit is erg makkelijk, in nood situaties zijn deze files makkelijk aan te passen met niets behalve een tekst editor. Daarnaast brengt dit uniformiteit naar het platform, in tegenstelling tot bijvoorbeeld Windows waar iedereen zo'n beetje maar doet waar die zin in heeft.

Het is mogelijk om /etc/passwd en /etc/shadow direct te bewerken met de vi(1) editor. Alleen als deze files door twee root users tegelijk bewerkt worden, is de kans groot dat alleen de wijzigingen van een root user worden doorgevoert. Om dit te voorkomen heeft men vipw(8) geintroduceerd. vipw(8) zorgt ervoor dat /etc/passwd en /etc/shadow gelocked worden. Daardoor is het maar voor een root user mogelijk deze files te bewerken, mits alle root users ook het vipw(8) commando gebruiken.

De volgende regel moet aan /etc/passwd worden toegevoegt:

toor:x:0:0:root:/home/toor:/bin/bash

Nadat /etc/passwd verandert is vraagt vipw(8) vanzelf of het de /etc/shadow ook moet bewerken, hier zeggen we ja, en voegen dan het volgende toe:

toor:*:12678:0:99999:7:::

Maar nu valt nog niet in te loggen met de toor account. Eerst zal ervoor gezorgt moeten worden dat de home directory klaar gemaakt wordt, dit doen we als volgt:

#mkdir /home/toor

#cd /home

#chown -R toor:root toor

Deze commando's maken eerst de directory aan. Daarna wordt de juiste ownership toegekent. Er hoeft nu nog alleen maar een wachtwoord toegekent te worden:

#passwd toor

New password:

Retype new password:

passwd: all authentication tokens updated succesfully.

Nu is de toor account klaar om mee ingelogt te worden. Maar omdat een uid eigenlijk maar met een username gepaard mag worden, zullen sommige programma's in de war raken, een goed voorbeeld hiervan is whoami(1). Na juist als toor te zijn ingelogt doen we dit:

#whoami

root

Correct gebruik van de root user

Normaal gesproken wordt de root account alleen gebruikt voor initieele configuratie van een systeem. Voor administratieve doeleinde wordt meestal sudo(8) gebruikt. sudo(8) stelt een normale gebruiker in staat om een commando uit te voeren met root rechten. Natuurlijk moet men dan wel over het root wachtwoord beschikken. Meestal hoeft dit wachtwoord maar eenmaal te worden ingevoerd, tijdens een shell sessie wordt dit wachtwoord dan gecached.

Om een gebruiker toegang te geven tot sudo(8), moet eerst het /etc/sudoers bestand juist geconfigureerd worden, controleer of de volgende regel aanwezig is, gebruik hier dan ook visudo(8) voor:

%wheel	ALL=(ALL)	ALL

Deze regel zorgt ervoor dat alle gebruikers die aanwezig zijn in de wheel groep, gebruik mogen maken van sudo(8), mits zij een juist root wachtwoord kunnen aanleveren.

Daarna moeten we een normale gebruiker toevoegen aan de wheel groep, dit doen we als volgt met behulp van usermod(8):

#usermod -G wheel pascal

Let op dat de G parameter een hoofdletter moet zijn, een kleine g verandert namelijk de primaire groep waartoe een user behoort. Dat willen wij hier niet.

Nu is de gebruiker pascal klaar om administratieve taken te verrichten:

#sudo whoami

Password:

root

#whoami

pascal

KDE

De K Desktop Environment is een van de grotere desktop environments die momenteel op Linux beschikbaar zijn. De grote tegenhanger van KDE is momenteel het GNOME project. Daarnaast zijn er nog tal van andere kleinere desktop environments, zoals bijvoorbeeld XFCE.

	KDE	GNOME
Widgets	Qt	GTK
Interface design	Per developer	GNOME HIG
Distributies (hoofd desktop)	SuSE, Mandrake, ...	RedHat, Debian, Sun, ...

In (Tao)Linux valt van console te wisselen met Ctrl-Alt-Fx, F7 geeft in de meeste gevallen de graphische desktop. We krijgen dan al snel een login scherm.:

In het 'Session' menu valt er een keus te maken tussen de beschikbare desktop environments. Voor ons project kiezen wij hier KDE. Daarna voeren we onze gebruikersnaam en wachtwoord in.

KDE heeft vele mogelijkheden waarvan we er hier een paar gaan bespreken. KDE heeft net zoals Microsoft Windows een 'Start' knop:

Een standaard Linux distributie levert heel veel software standaard mee. Onder Office, is OpenOffice.org te vinden, een office pakket wat qua functionaliteit Microsoft Office bijna evenaart.

Daarnaast valt bij System Settings en System Tools van allerlei systeem configuratie software te vinden. Deze software is meeste vrij gemakkelijk in het gebruik.

Bij Games kan men een paar dozijn aan simpele spelletjes vinden. Een ander belangrijk element is de KDE Control Center, waarbij alle KDE gerelateerd instellingen gedaan kunnen worden.

Het beheren van users

Het Toevoegen van gebruikers

Op een modern UNIX systeem heeft alleen de root user administratieve machtigingen. Omdat UNIX altijd al multiuser geweest is, is alle software ontworpen om elegant met deze situatie om te gaan. Een normale user heeft geen speciale rechten nodig voor dagelijks gebruik.

Voor het toevoegen van users wordt het useradd(8) commando gebruikt, hier volgen twee voorbeelden:

#useradd -g users -d /home/pascal -s /bin/bash -c Pascal -m -p pascal pascal

#useradd -g users -d /home/kevin -s /bin/bash -c Kevin -m -p kevin kevin

Het valt meteen op dat er een aantal parameters aan useradd(8) worden meegegeven. De g parameter zorgen ervoor dat pascal en kevin in de groep 'users' terecht komen. De d parameter geeft aan waar de users hun home directories hebben. In een home directory worden de bestanden van een gebruiker opgeslagen. De s parameter geeft aan welke shell gebruikt wordt bij een text login, wij nemen hier de standaard shell, bash . De c parameter laat ons wat commentaar toevoegen. De m parameter zorgt ervoor dat de home directory automatisch wordt gecreeerd met de juiste rechten. De p parameter zet het initieele wachtwoord voor de desbetreffende gebruiker. De laatste parameter, wat gewoon een woord is, geeft de login naam van de gebruiker aan.

Het veranderen van gebruikers

Om de home directory van twee users van /home naar /users te verplaatsen kunnen we het usermod(8) commando gebruiken. We moeten eerst zorgen dat de /users directory bestaat. Daarna kunnen als volgt de home directories verplaatsen:

#mkdir /users

#usermod -d /users/kevin -m kevin

#usermod -d /users/pascal -m pascal

Er valt meteen op dat de parameters van usermod(8) gelijk zijn aan die useradd(8). Als er na deze commandos met een van de users wordt ingelogt, kan men als volgt controleren of het gelukt is:

#pwd

/users/kevin

Het pwd(1) commando geeft aan welke directory nu actief is, het staat voor print working directory.

Vi

De vi(1) editor is de standaard editor voor UNIX achtige systemen, vi(1) was eerst geschreven door Bill Joy aan de UC Berkeley in 1976.

Sinds 1976 is de vi(1) editor vele malen herschreven en aangepast. De meeste moderne Linux distributies gebruiken nu Vim, geschreven door Bram Molenaar.

Bij het gebruik van vi(1) moet men goed opletten dat de editor twee operatie modi heeft, namelijk editing mode and command mode. Als men gewoon vi(1) start komt men terecht in command mode. Dit is voor veel gebruikers zeer verwarrend, want er verschijnt niks op 't scherm als er getypt wordt. Om editing mode in te gaan moet men op de Insert toets drukken. Om weer terug command mode in te gaan drukken we op de Escape toets.

vi(1) command mode
:w foo.bar	write
:q!	quit
:u	undo
/	find
:s/foo/bar/g	substitute
v	visual selection
c	cut
y	yank (copy)
p	paste

Uitwisselbare media

Mount

Linux houd zich streng aan het UNIX concept van het mounten van bestandsystemen. Hiermee wordt bedoelt dat als men toegang wil tot een specifiek bestandsysteem, moet men dit bewust aangeven met behulp van het mount(8) commando:

#mount -t vfat /dev/fd0 /mnt/floppy

Met dit commando wordt het block device /dev/fd0 gemount op /mnt/floppy, waarbij de inhoud van /dev/fd0 geinterpreteerd wordt alsof het een vfat bestandsysteem bevat.. Dit is natuurlijk erg veel typwerk.

fstab

Het kan ook anders, in /etc/fstab staat een lijst van block devices die gemount kunnen worden. Als een mount point present is in de /etc/fstab kan men het mount(8) commando gebruiken met maar een parameter. Dit mag dan of het block device zijn of het mount point. Om een diskette makkelijk te kunnen mounten moet deze regel aanwezig zijn in /etc/fstab:

/dev/fd0	/mnt/floppy	vfat	noauto	0 0

Deze regel vertelt mount(8) dat /dev/fd0 gemount moet worden op /mnt/floppy met het bestandsysteem vfat en dat deze niet automatisch (noauto) bij het booten gemount moet worden.

#mount /dev/fd0

#umount /mnt/floppy

Met umount(8) kan men bestandsystemen unmounten. Let op dat dit heel belangrijk is bij alle read/write media. Linux cached namelijk alle device IO voor een bepaalde periode. umount(8) zorgt ervoor dat de data gesynchroniseert wordt, en dat je dus geen bestanden kwijt raakt.

Evaluatie

Tijdens deze opdracht zijn we er snel achtergekomen dat de princiepes achter Linux zeer verschillend zijn tegenover andere besturingsystemen.

Bronnen

Tijdens het maken van dit project hebben we de volgende bronnen geraadpleegt:

http://linux-newbie.sunsite.dk/

http://www.icon.co.za/~psheer/book/

LPI Linux Certification in a Nutshell (van O'Reilly)

UNIX man pages

Advanced Server, dit is Redhat's high end server product.

GNU GRand Unified Boot loader

Dit om dezelfde redenen als vipw(8).

Trolltech Qt is alleen op UNIX achtige platformen open source.

Human Interface Guidelines, interface research gesponsort door Sun Microsystems.

GNU Bourne Again SHell

De home directories in /users plaatsen breekt de Linux Filesystem Hierarchy Standard.

Het uitroepteken zorgt ervoor dat dat Vim meteen stopt zonder het bestand op te slaan.

/dev/fd0 representeerd het rouwe diskette oppervlak.

Linux

Hogeschool Zuyd

Pascal de Bruijn & Kevin Moonen	Bronnen - Pagina 17

Hogeschool Zuyd, 22 September 2004

Pascal de Bruijn & Kevin Moonen	Index - Pagina 17

Linux

pnet1: linux

Pascal de Bruijn

2004-09-17T19:58:34