Upload
jan-vansteenkiste
View
499
Download
0
Embed Size (px)
Citation preview
Hands On LinuxHands On Linux
● Inuits● Open Source● http://inuits.be
● Jan Vansteenkiste● [email protected]
IntroductieIntroductie
Virtual BoxVirtual Box
● Virtuele Machine● KVM● Xen● VirtualBox● ...
● Virtual Box● Installatie
– Windows: http://<my.ip>/– Linux: Afhankelijk van distributie
● Ubuntu: sudo apt-get install virtualbox-ose
Virtual BoxVirtual Box
● Aanmaken nieuwe Virtuele Machine
● Configureren nieuwe machine
● Installatie Linux
Installatie LinuxInstallatie Linux
● Partitionering: Uitsplitsen? ● /var, /boot, /home, /tmp, ...
● Netwerk instellingen
● Root wachtwoord (in ubuntu: gebruiker aanmaken & wachtwoord instellen)
● Installatie basis systeem
● Installatie van packages
● Kernel (/boot)
● Bootloader● Grub / Lilo
Filesystem Hierarchy StandardFilesystem Hierarchy Standard
● Voorspellen locatie bestanden● Software / OS● Gebruikers
● Bestandsysteem● Bestanden die kunnen gedeeld worden <->
Bestanden die NIET kunnen gedeeld worden● Statisch <-> Variabel
Filesystem Hierarchy StandardFilesystem Hierarchy Standard
● / - 'root' filesystem – start punt voor alles
● /bin - 'binary' – uitvoerbare bestandeen (voor gebruikers)
● /boot - bestanden noodzakelijk voor booten (opstarten)
● /dev - 'devices' – speciale directory (niet aanpassen)
● /etc - '' - systeem configuratie
● /home - peresoonlijke files
● /lib - gedeelde libraries
● /lost+found – filesystem controle
● /media - verwijderbare media (usb disk, cdroms)
● /mnt - permanente mounts
● /opt - optional – externe software (bv java, ...)
Filesystem Hierarchy StandardFilesystem Hierarchy Standard● /proc - kernel info / configuratie
● Voorbeeld: 'cat /proc/cpuinfo'
● /root - 'home' folder van root gebruiker
● /sbin - systeem binaries. Enkel beheerder heeft toegang
● /selinux - pseudo-filesysteem (zoals proc) voor selinux (security)
● /srv - plaats om bestanden aan te bieden door services
● /tmp - tijdelijke bestanden
● /usr - deelbare, -optionele) alleen-lezen data. Niet vereist om basissysteem werkend te krijgen.
● Verder onderverdeeld in: bin, lib, sbin, ...
● /var - 'variabel' – snel veranderende data
● /var/log - log bestanden
● /var/spool - nog te verwerken bestanden (mail bv)
● ...
RunlevelsRunlevels● Linux opstarten:
● bootloader -> kernel● init (/etc/inittab)
– runlevels
● Runlevel bepaalt welke services opgestart worden
● Speciale runlevels:● 0: halt (shutdown)● 6: reboot● 1: single user● 5: start grafische interface
RunlevelsRunlevels
● /etc/init.d/● opstart scripts
● /etc/rc*.d/● runlevel configuratie
● symlinks (gebruik ls -l)● Configuratie tools:
● rcconf● service
● chkconfig (chkconfig -l -A)
ShellShell
● Text based - Terminal
● Shell: Bash● Prompt (username / hostname / directory)● Build in commands:
– echo, exit, export, history, kill, ...● Ctrl-c : afbreken● Ctrl-r : zoeken in history
ShellShell● Uitvoeren van commando's
● ls <opties> <argumenten>ls --helpls -la
● Bewegen door directory structuur● Relatieve vs Absolute paden
– '.' '..'
– ~
– vb1: ../../foldervb2: /path/to/foldervb3: ~/folder/
● Commandos: – pwd
– cd
– ls
ShellShell
● Hulp op de shell:● commando --help● man <commando>
q - afsluiten
/zoekstr - zoeken
– Zoek op wat '-o' doet bij het 'ls' commando
ShellShell
● Bestand & Directory operaties● mkdir - make dir● touch - maakt lege bestanden aan● cp - copy● mv - move● rm, rmdir - remove / removedir● cat ● less, more
cat bestand.txt | less● find
find . -iname *.log
● Maak een volgende structuur aan (mkdir, touch)
<home-folder><home-folder>`-- handson`-- handson |-- nog_een_folder|-- nog_een_folder | `-- bestand1| `-- bestand1 `-- voorbeeld`-- voorbeeld `-- sub`-- sub |-- file1|-- file1 |-- file2|-- file2 `-- file3`-- file3● Kopieer bestand1 naar bestand2 in dezelfde map
● ls /dev | morels /dev | less (ls afsluiten met 'q')
Quick solutionQuick solution
Sneller alternatief: mkdir -p handson/voorbeeld/sub mkdir handson/nog_een_folder
Nog sneller: mkdir -p handson/{voorbeeld/sub,nog_een_folder}
Bestanden aanmaken mbv (bash-)scripting for nr in `seq 1 3`; do touch handson/voorbeeld/sub/file$nr; done
mkdir handsonmkdir handson/voorbeeldmkdir handson/voorbeeld/submkdir handson/nog_een_folder
touch handson/nog_een_folder/bestand1touch handson/voorbeeld/sub/file1touch handson/voorbeeld/sub/file2touch handson/voorbeeld/sub/file3
cp handson/nog_een_folder/bestand1 handson/nog_een_folder/bestand2
Text EditorsText Editors● vi (vim = vi improved)
● commando's:– esc - verlaat huidige mode
– i - insert mode
– x - wis karakter
– dd - wis lijndw - wis woord
– :q - afsluiten:q! - geforceerd afsluiten (niet opslaan)
– :w - opslaan:wq - opslaan en afsluiten (idem :x)
● nano● toetsenbord combinaties onderaan: ctrl-?
Systeem commandosSysteem commandos● ps
● kill
● top
● df
● du
● shutdown
● sudo (visudo!)su / su <user>
sudo su <-> sudo su -● which
● PATH variabele
Users / Groups and PermissionsUsers / Groups and Permissions
● Gebruikers● User IDs / Group IDs● /etc/passwd, /etc/shadow● /etc/group, /etc/gshadow● useradd, usermod, userdel, id, 'who am i', w
– id root
● Permissies op filesystem:● ID, GID (numeriek)● Bitmask
PermissiesPermissies
● drwxr-xr-x 2 handson users 4096 Nov 4 08:07 folder
● r : readw : writex : execute (andere betekenis bij folders)
● <user><group><other>● drwxr-xr-x
- : normaal bestandd : directoryl : symbolische linkc : 'character' device (printer, tty)b : 'block' device (disk, cdrom)
Number Binary Rights0 000 1 001 x2 010 w3 011 wx4 100 r5 101 rx6 110 rw7 111 rwx
Permissies: OctaalPermissies: Octaal
Permissies: AanpassenPermissies: Aanpassen
● chown - change ownerchgrp - change group
● chmod - change file mode bits
● voorbeelden:● chown handson bestand
chgrp users bestandchown handson:users bestandchown :users bestand
● chmod 700 bestandchmod u=rwx,g-rwx,o-rwx bestandchmod a+w bestand
● chmod -R ... (recursief)
Software InstallatieSoftware Installatie
● RPM / DEB
● Ubuntu ~ debian
● DPKG● .deb pakketten – binary of source● hoofd pakket management tool
● APT - Advanced Package Tool● Frontend voor dpkg● Automatisch downloaden / installeren pakketten
● Aptitude
APTAPT
● /etc/apt/sources.list
● apt-get● apt-get update● apt-get upgrade● apt-get install● apt-get remove
● apt-cache● apt-cache search
APTAPT
● Zoek een alternatief om runlevel(s) te configureren
● Installeer een van deze programmas
● Gebruik het programma om de cron daemon te starten (cron voert commando's uit op geconfigureerde tijdstippen)
NetworkingNetworking
● Configuratie● Ubuntu maakt gebruik van 'NetworkManager'● Manuele configuratie via 'ifconfig'
– ifconfig -a - lijst alle interfacesifconfig eth0 - toon configuratie van eth0
– ifconfig eth0 192.168.0.1/24● Automatische configuratie via dhcp
– dhclient eth0● /etc/network/interfaces
– Configuratie bij het opstarten
Systeem configuratieSysteem configuratie
● /etc● Algemene Systeem Configuratie:
– Debian: /etc/default– Redhat: /etc/sysconfig– ...
● Pakketten– /etc/apache2/– /etc/cron*
ls /etc/cron*– ...
Remote werken via SSHRemote werken via SSH
● Belang van Encryptie● Onveilige protocollen:
– telnet, ftp, http, pop3, imap– voorbeeld smtp login -> 'plain' password
● Veilige alternatieven:– ssh
ftps, https, pop3s, imaps mbv ssl (Secure Socket Library)
● SSH● ssh -l <user> <remote host>● ssh-keys
ssh-keygenssh-keygen
● Aanmaken van een key pair:● private key● public key
● ssh-keygen– ~/.ssh/id_rsa– ~/.ssh/id_rsa.pub
● Inhoud id_rsa.pub naar remote host toevoegen aan bestand: – ~/.ssh/authorized_keys