Informatica Studenten Werking : Debian I Lucas Kauffman en Vincent Andries 4 maart 2011
1
INHOUDSOPGAVE
INHOUDSOPGAVE
Inhoudsopgave 1
Welkom
3
2
Debian : eenvoudige introductie 2.1 Wat is Debian? . . . . . . . . . . . . . . 2.2 Is het gratis? . . . . . . . . . . . . . . . 2.3 Waarom Debian? . . . . . . . . . . . . 2.4 Hoe vaak moet ik Debian herstarten? . 2.5 Debian installeren . . . . . . . . . . . . 2.6 Operationeel maken . . . . . . . . . . 2.7 Statisch IP instellen . . . . . . . . . . . 2.8 Repository, sudo en openssh-server . .
. . . . . . . .
3 3 3 4 4 4 4 5 5
. . . . .
7 7 8 9 10 10
3
4
. . . . . . . .
Programma’s installeren 3.1 Samba . . . . . . . . . . . . . . . . . . . 3.2 Vsftpd . . . . . . . . . . . . . . . . . . . 3.3 Apache2 . . . . . . . . . . . . . . . . . . 3.4 TorrentFlux . . . . . . . . . . . . . . . . . 3.5 Programma’s om thuis eens te bekijken
. . . . . . . . . . . . .
. . . . . . . . . . . . .
Bijlage Unix Cheat sheet
24 november 2010
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
10
pg. 2 van 11
2
1
DEBIAN : EENVOUDIGE INTRODUCTIE
Welkom
Welkom, deze pdf is een korte samenvatting voor het installeren van debian. Hij is bedoeld voor mensen die voor het eerst kennis maken met debian en een command line linux omgeving.
2 2.1
Debian : eenvoudige introductie Wat is Debian?
Het Debian Project is een samenwerkingsverband tussen individuen die samen een vrij besturingssysteem willen maken. Dat besturingssysteem dat ze hebben ontwikkeld heet Debian GNU/Linux of simpelweg Debian. Een besturingssysteem is de verzameling van basis- en hulpprogramma’s die ervoor zorgen dat uw computer werkt. De kern van een besturingssysteem is de kernel. De kernel is het meest fundamentele programma op de computer. Hij zorgt voor het beheer van de computer op een basisniveau en maakt het mogelijk om andere programma’s te starten. Debian is kernel onafhankelijk. Op het ogenblik gebruiken Debian systemen de Linux kernel. Linux is een stuk software gestart door Linus Torvalds maar nu wordt ondersteund door duizenden programmeurs van over de hele wereld. Er wordt aan gewerkt om Debian geschikt te maken voor andere kernels, in eerste instantie de Hurd. De Hurd is een verzameling servers die bovenop een microkernel (zoals Mach) draaien om verschillende functies te implementeren. De Hurd is vrije software gemaakt door het GNU project. Een groot deel van de basisprogramma’s waar het besturingssysteem uit bestaat komen voort uit het GNU project; vandaar de namen: GNU/Linux en GNU/Hurd. Deze programma’s zijn ook vrij. Wat mensen willen is natuurlijk applicatiesoftware: programma’s die hen helpen gedaan te krijgen wat ze willen doen, van het bewerken van documenten, het beheren van een bedrijf, het spelen van spelletjes, tot het schrijven van meer software. Debian bestaat uit met meer dan 25000 pakketten (voorgecompileerde software samengebundeld voor een eenvoudige installatie op uw machine) allemaal vrij. Het lijkt een beetje op een toren. De voet is de kernel. Daarbovenop alle basisprogramma’s en vervolgens de software die u op uw computer draait. De top is Debian voorzichtig regelend en organiserend zodat alles samenwerkt.
2.2
Is het gratis?
Misschien vraagt u zichzelf af: waarom steken mensen zoveel van hun eigen tijd in het schrijven en zorgvuldig verpakken van software, om deze vervolgens weg te geven? De antwoorden zijn zo verschillend als de mensen die bijdragen. Sommige zijn graag behulpzaam. Velen schrijven programma’s om meer te leren over computers. Steeds meer zijn er op zoek naar manieren om de hoge prijzen van software te vermijden. Een groeiende groep helpt als dank voor de prachtige vrije software die ze van anderen hebben gekregen. Veel academici schrijven vrije software om de resultaten van hun onderzoek wijder te verspreiden. Bedrijven helpen met het onderhouden van vrije software om invloed te kunnen hebben op de verdere ontwikkeling; er is geen snellere manier om een nieuwe functie te krijgen dan hem zelf te implementeren! En natuurlijk zijn er een hoop ontwikkelaars onder ons die het gewoon leuk vinden. Debian is zo gebonden aan vrije software dat het ons nuttig leek deze band te formaliseren in een document. Zo is ons Sociale Contract geboren.
24 november 2010
pg. 3 van 11
2.3
Waarom Debian? 2 DEBIAN : EENVOUDIGE INTRODUCTIE Hoewel Debian gelooft in vrije software, zijn er gevallen waarin mensen niet-vrije software op hun computer willen of moeten gebruiken. Waar mogelijk ondersteunt Debian dit. Er is een groeiend aantal pakketten die enkel en alleen de taak hebben om niet-vrije software te installeren op en Debian systeem.
2.3
Waarom Debian?
Debian heeft als hoofddoel stabiel te zijn. Dit betekent dat men in Debian misschien niet de meest nieuwe technologische hoogstandjes direct opneemt, maar eerder afwacht om te zien of het problemen geeft. Je moet namelijk weten dat wanneer je servers in een datacenter hebt staan, het niet altijd zo gemakkelijk is om even naar ginder te gaan en de software opnieuw te installeren.
2.4
Hoe vaak moet ik Debian herstarten?
In principe nooit, tenzij er kernel updates zijn.
2.5
Debian installeren • Download Debian netinstall of de alternatieve iso van debian.org . Brand deze op schijf of mount deze in vmware. • Start de computer en laat hem van de cd booten. • Volg vervolgens de instructies op het scherm, kies voor een install en niet voor graphical install. • Kies je taal voorkeuren. • Geef de naam van je debian install, laat dit niet op debian staan! • Selecteer vervolgens “guided use entire disk” en laat default waarden staan • Geef je paswoord op voor root (superuser), in een operationele omgeving moet dit best een sterk wachtwoord zijn. • Geef je gebruikersnaam en wachtwoord op. • Als hij vraagt naar andere CD’s zeg neen. • Als hij vraagt achter een mirror, ga dan naar Belgium en kies een van de mirrors. • Op het moment dat hij vraagt wel type je zou willen installeren, ga dan op de desktop optie staan en druk spatiebalk, we hebben enkel de standard optie nodig. • Zeg ja bij het installeren van de GRUB bootloader. U heeft nu Debian geinstalleerd
2.6
Operationeel maken
Om onze debian operationeel te maken gaan we enkele instellingen aanpassen zoals onze server een vast IP-adres geven, ssh-server installeren (wat ons toelaat van buitenaf te verbinden met onze server), . . . Hiervoor moeten we inloggen met onze root account. 24 november 2010
pg. 4 van 11
2.7
Statisch IP instellen
2.7
Statisch IP instellen
2
DEBIAN : EENVOUDIGE INTRODUCTIE
Om een statisch ip in te stellen moeten we het bestand /etc/network/interfaces aanpassen. Dit bevat de configuratie voor onze netwerkinstellingen. Om te editeren gebruiken we nano. Vergeet nooit met nano de ’-w’ parameter mee te geven. dit zorgt ervoor dat als een lijn te lang is om op je scherm te tonen nano dit niet als een nieuwe lijn opslaat (geeft configuratiefouten). nano −w / e t c /network/ i n t e r f a c e s Dit bestand ziet er standard ongeveer zo uit: # This f i l e d e s c r i b e s t h e network i n t e r f a c e s a v a i l a b l e on your system # and how t o a c t i v a t e them . For more i n f o r m a t i o n , s e e i n t e r f a c e s ( 5 ) . # The loopback network i n t e r f a c e auto l o i f a c e l o i n e t loopback # The primary network i n t e r f a c e auto e t h 0 # i f a c e e t h 0 i n e t dhcp We passen dit aan naar: # This f i l e d e s c r i b e s t h e network i n t e r f a c e s a v a i l a b l e on your system # and how t o a c t i v a t e them . For more i n f o r m a t i o n , s e e i n t e r f a c e s ( 5 ) . # The loopback network i n t e r f a c e auto l o i f a c e l o i n e t loopback # The primary network i n t e r f a c e auto e t h 0 i f a c e eth0 i n e t s t a t i c address 1 9 2 . 1 6 8 . 0 . 1 0 0 network 1 9 2 . 1 6 8 . 0 . 0 netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 gateway 1 9 2 . 1 6 8 . 0 . 2 5 4 Let op! De ip’s bij address, network en gateway zullen waarschijnlijk verschillen met je effectieve adressen bij jou thuis.
2.8
Repository, sudo en openssh-server
De repository is eigenlijk een grote server welke paketten bevat van debian. Dit is software die op voorhand gecompileerd is voor verschillende systemen en naderhand enkel nog moet uitgepakt worden (zoals een zip file). We passen de sources.list van aptitude (onze paketmanager) aan zodat deze geen paketten op de CD-rom meer gaat zoeken en installeren daarna onze ssh-server en sudo. Sudo laat ons toe vanaf onze gewone user root te worden zonder het eigenlijke root wachtwoord te kennen.
24 november 2010
pg. 5 van 11
2.8
Repository, sudo en openssh-server
2
DEBIAN : EENVOUDIGE INTRODUCTIE
cd / e t c /apt/ nano −w s o u r c e s . l i s t p l a a t s een # voor ”deb cdrom : ”
( i n d i e n de n e t i n s t a l l g e b r u i k t werd i s d i t n i e t nodig )
druk c t r l +x , zeg ”y” en duw e n t e r a p t i t u d e update a p t i t u d e upgrade deze 2 commando ’ s updaten de cache van onze p a k e t t e n en gaan i n d i e n nodig de l a a t s t e nieuwe v e r s i e s i n s t a l l e r e n a p t i t u d e i n s t a l l sudo a p t i t u d e i n s t a l l openssh−s e r v e r s e x p o r t EDITOR=nano visudo nano g a a t weer open , zoek naar de s e c t i e # u se r p r i v i l e g e s p e c i f i c a t i o n vul h i e r i n b i j : JeNaam ALL=(ALL) ALL druk c t r l +x , zeg ”y” en duw e n t e r Nu kan je inloggen met een gewone gebruiker en commando’s vanuit deze gebruiker laten uitvoeren als root, door het commando te laten voorafgaan door ”sudo”. Om het jullie gemakkelijk te maken hebben we een paar scriptjes gemaakt die je kan afhalen op : http://workshop.madoka.be/ Een voorbeeldje: log uit als root (typ exit of ctrl+d) en log in als je gewone gebruiker. Typ nu:
sudo aptitude update. Je zal je wachtwoord opnieuw moeten ingeven en je paketlijst zal geupdate worden.
24 november 2010
pg. 6 van 11
3
3
PROGRAMMA’S INSTALLEREN
Programma’s installeren
Om een script te downloaden gebruiken we een command-line client genaamd ’wget’. Om een script te runnen, typen we ”sudo sh naamvanbashscript.sh”
3.1
Samba
Samba is een open source softwarepakket dat bestaat uit verschillende applicaties. Samba maakt gebruik van het SMB (netwerkprotocol). Door ondersteuning voor dit protocol te bieden, kunnen machines die dit protocol ondersteunen met elkaar communiceren over het netwerken, zowel intern als over het internet. Deze technologie wordt vooral gebruikt om Unix machines te laten communiceren met Windows machines. Om het sambascript te downloaden gebruiken we dit commando: wget h t t p :// workshop . madoka . be/samba . sh Het script ziet er alsvolgt uit: # ! / bin/sh echo ” I n s t a l l e r e n van samba : ” echo ” a p t i t u d e i n s t a l l samba samba− c l i e n t ” echo ”Druk op e n t e r om door t e gaan . . . ” read i e t s a p t i t u d e i n s t a l l samba samba− c l i e n t Met het samba.sh script installeren we samba, om samba te configureren moeten we /etc/samba/smb.conf aanpassen. smbpasswd −a $USER # $USER j e uw username nano −w / e t c /samba/smb . conf aanpassen : [SAMBA] path=/home/$ us e r/shared # ook h i e r i s $ u se r j e gebruikersnaam Read only = yes/no browseable=yes w r i t e a b l e =yes v a l i d u s e r s = $USER [ global ] workgroup = debian n e t b i o s name = d e b i a n s e r v e r s e r v e r s t r i n g = %h s e r v e r ( Samba %v ) l o g f i l e = /var/l o g/samba/l o g .%m max l o g s i z e = 1000 syslog = 0
24 november 2010
pg. 7 van 11
3.2
Vsftpd
3.2
Vsftpd
3
PROGRAMMA’S INSTALLEREN
Vsftpd, staat voor ’Very Secure FTP Daemon’ en is zoals de naam het zegt een FTP-server voor Unix systemen. De licentie valt onder GNU (General Public License). Het ondersteunt SSL en IPv6. Het grote voordeel van vsftpd is dat het enorm gemakkelijk te configureren is. Andere mogenlijkheden die we hier niet verder gaan bespreken zijn bv: ’proFTPD’ en ’Pure-FTPD’. aptitude i n s t a l l vsftpd nano −w / e t c / v s f t p d . conf v s f t p d c o n f i g u r e r e n , l e e s r u s t i g de c o n f i g door , b i j e l k e o p t i e s t a a t u i t l e g , i n d i e n j e een o p t i e wil a c t i v e r e n moet j e h e t # v e r w i j d e r e n . I n d i e n j e geen g e b r u i k e r s wil l a t e n i n l o g g e n d i e anoniem z i j n w i j z i g dan deze r e g e l : # Allow anonymous FTP? ( Beware − allowed by d e f a u l t i f you comment t h i s out ) . anonymous enable=YES naar # Allow anonymous FTP? ( Beware − allowed by d e f a u l t i f you comment t h i s out ) . anonymous enable=NO Hierdoor kunnen e n k e l g e b r u i k e r s met een gebruikersnaam op de s e r v e r i n l o g g e n . # You may r e s t r i c t l o c a l u s e r s t o t h e i r home d i r e c t o r i e s . See t h e FAQ f o r # t h e p o s s i b l e r i s k s i n t h i s b e f o r e using c h r o o t l o c a l u s e r or # c h r o o t l i s t e n a b l e below . # c h r o o t l o c a l u s e r =YES naar # You may r e s t r i c t l o c a l u s e r s t o t h e i r home d i r e c t o r i e s . See t h e FAQ f o r # t h e p o s s i b l e r i s k s i n t h i s b e f o r e using c h r o o t l o c a l u s e r or # c h r o o t l i s t e n a b l e below . c h r o o t l o c a l u s e r =YES Hierdoor z i t t e n ze v a s t i n hun homedir en kunnen ze bovenliggende mappen van h e t systeem n i e t z i e n .
24 november 2010
pg. 8 van 11
3.3
Apache2
3.3
Apache2
3
PROGRAMMA’S INSTALLEREN
Download het apache2 script: wget h t t p :// workshop . madoka . be/apache . sh Met het scriptje gaan we apache downloaden van de repository en installeren. Het scriptje ziet er als volgt uit : # ! / bin/sh echo ” I n s t a l l e r e n van Apache2 : ” echo ” a p t i t u d e i n s t a l l apache2 ” echo ”druk op e n t e r om verder t e gaan . . . ” read i e t s a p t i t u d e i n s t a l l apache2 echo ” I n s t a l l e r e n van php5 + mysql support ” echo ” a p t i t u d e i n s t a l l php5 php5− c l i php5−mysql” echo ”druk op e n t e r om verder t e gaan . . . ” read i e t s a p t i t u d e i n s t a l l php5 php5− c l i echo ” i n s t a l l e r e n van mysql” echo ” a p t i t u d e i n s t a l l mysql−s e r v e r mysql− c l i e n t ” echo ”druk op e n t e r om verder t e gaan . . . ” read i e t s a p t i t u d e i n s t a l l mysql−s e r v e r mysql− c l i e n t Indien je het script niet wil gebruiken kan je hetvolgende commando gebruiken: a p t i t u d e i n s t a l l apache2 php5 php5− c l i php5−mysql \ mysql−s e r v e r mysql− c l i e n t
24 november 2010
pg. 9 van 11
3.4
TorrentFlux
3.4
TorrentFlux
4
BIJLAGE UNIX CHEAT SHEET
Dit is een gebruiksvriendelijke webinterface voor het beheren van torrents. Om torrentflux te laten werken hebben we enkele extra toepassingen nodig. We installeren torrentflux weer met behulp van een scriptje. wget h t t p :// workshop . madoka . be/ f l u x . sh sh f l u x . sh
# ! / bin/sh echo ‘ ‘ Downloaden van t o r r e n t f l u x f i l e s : ’ ’ echo ‘ ‘ wget h t t p :// workshop . madoka . be/ t o r r e n t f l u x − b 4 r t 1 .0 − b e t a 2 . t a r . bz2 ’ ’ echo ‘ ‘ Druk op e n t e r om verder t e gaan . ’ ’ read i e t s wget h t t p :// workshop . madoka . be/ t o r r e n t f l u x − b 4 r t 1 .0 − b e t a 2 . t a r . bz2 echo ‘ ‘ Downloaden van . deb voor c k s f v : ’ ’ echo ‘ ‘ wget f t p :// f t p . de . debian . org/debian/pool/main/c/ c k s f v / c k s f v 1 .3.14 − 1 i 3 8 6 echo ‘ ‘ Druk op e n t e r om verder t e gaan . ’ ’ read i e t s wget f t p :// f t p . de . debian . org/debian/pool/main/c/ c k s f v / c k s f v 1 .3.14 − 1 i 3 8 6 . deb echo ‘ ‘ I n s t a l l e r e n van p a k e t t e n nodig voor TF : ’ ’ echo ‘ ‘ apt −g e t i n s t a l l z i p unzip unrar p e r l python libxml −dom−p e r l libxml −simple −p e r l l i b t h r e a d s −shared −p e r l l i b d i g e s t −sha1−p e r l l i b h t m l −p a r s e r −p t r a n s m i s s i o n − c l i v l c uudeview build − e s s e n t i a l l i b s s l −dev pkg−c o n f i g ’ ’ echo ‘ ‘ Druk op e n t e r om verder t e gaan : ’ ’ read i e t s apt −g e t i n s t a l l z i p unzip unrar p e r l python libxml −dom−p e r l libxml −simple −p e r l l i b t h r e a d s −shared −p e r l l i b d i g e s t −sha1−p e r l l i b h t m l −p a r s e r −p e r l t r a n s m i s s i o n − c l v l c uudeview build − e s s e n t i a l l i b s s l −dev pkg−c o n f i g Dit volstaat voor de default installatie van torrentflux. Je kan nu naar http://je.ip.hier/torrentflux surfen. Meer informatie over torrentflux vind je op http://tf-b4rt.berlios.de/
3.5
Programma’s om thuis eens te bekijken
De programma’s hieronder kan je best eens bekijken, ze maken het leven van een serveradmin gemakkelijker. Indien je iets zoekt voor Debian of wil weten hoe je iets moet installeren, zoek dan eerst op Google en de Debian website, meestal vind je heel uitgebreide tutorials terug. • vim (krachtige text editor) • less • tail • screen (een echte aanrader!) • cups (printservers)
4
Bijlage Unix Cheat sheet
24 november 2010
pg. 10 van 11
Unix/Linux Command Reference File Commands
.com System Info
ls – directory listing date – show the current date and time ls -al – formatted listing with hidden files cal – show this month's calendar cd dir - change directory to dir uptime – show current uptime cd – change to home w – display who is online pwd – show current directory whoami – who you are logged in as mkdir dir – create a directory dir finger user – display information about user rm file – delete file uname -a – show kernel information rm -r dir – delete directory dir cat /proc/cpuinfo – cpu information rm -f file – force remove file cat /proc/meminfo – memory information rm -rf dir – force remove directory dir * man command – show the manual for command cp file1 file2 – copy file1 to file2 df – show disk usage cp -r dir1 dir2 – copy dir1 to dir2; create dir2 if it du – show directory space usage doesn't exist free – show memory and swap usage mv file1 file2 – rename or move file1 to file2 whereis app – show possible locations of app if file2 is an existing directory, moves file1 into which app – show which app will be run by default directory file2 Compression ln -s file link – create symbolic link link to file tar cf file.tar files – create a tar named touch file – create or update file file.tar containing files cat > file – places standard input into file tar xf file.tar – extract the files from file.tar more file – output the contents of file tar czf file.tar.gz files – create a tar with head file – output the first 10 lines of file Gzip compression tail file – output the last 10 lines of file tar xzf file.tar.gz – extract a tar using Gzip tail -f file – output the contents of file as it tar cjf file.tar.bz2 – create a tar with Bzip2 grows, starting with the last 10 lines compression Process Management tar xjf file.tar.bz2 – extract a tar using Bzip2 ps – display your currently active processes gzip file – compresses file and renames it to top – display all running processes file.gz kill pid – kill process id pid gzip -d file.gz – decompresses file.gz back to killall proc – kill all processes named proc * file bg – lists stopped or background jobs; resume a stopped job in the background Network fg – brings the most recent job to foreground ping host – ping host and output results fg n – brings job n to the foreground whois domain – get whois information for domain dig domain – get DNS information for domain File Permissions dig -x host – reverse lookup host chmod octal file – change the permissions of file wget file – download file to octal, which can be found separately for user, wget -c file – continue a stopped download group, and world by adding: ● 4 – read (r) Installation ● 2 – write (w) Install from source: ● 1 – execute (x) ./configure Examples: make chmod 777 – read, write, execute for all make install chmod 755 – rwx for owner, rx for group and world dpkg -i pkg.deb – install a package (Debian) For more options, see man chmod. rpm -Uvh pkg.rpm – install a package (RPM)
SSH
ssh user@host – connect to host as user ssh -p port user@host – connect to host on port port as user ssh-copy-id user@host – add your key to host for user to enable a keyed or passwordless login
Searching
Shortcuts
Ctrl+C – halts the current command Ctrl+Z – stops the current command, resume with fg in the foreground or bg in the background Ctrl+D – log out of current session, similar to exit Ctrl+W – erases one word in the current line Ctrl+U – erases the whole line Ctrl+R – type to bring up a recent command !! - repeats the last command exit – log out of current session
grep pattern files – search for pattern in files grep -r pattern dir – search recursively for pattern in dir command | grep pattern – search for pattern in the output of command * use with extreme caution. locate file – find all instances of file