Show Menu
Cheatography

Ububtu server Cheat Sheet by

Ubuntu server pxl

Interfaces

/etc/n­etw­ork­/in­ter­faces
Nic config­ureren
sudo ifdown eth0
Take a network interface down
sudo ifdown -a
^
sudo ifup eth0
Bring a network interface up
sudo ifup -a
^
ifdown eth0 && ifup eth0
Reboot network interface
ifconfig eth0 down && ifconfig eth0 up
^
sudo dhclient -r eth0
Release
sudo dhclient eth0
Request lease
sudo hostname [name]
Changes the hostname (temp)
arp -a
Show all entries
arp -d [name]
Delete an entry
route
Show the IP routing table
route add default gw [192.1­68.1.1]
Add a default gateway

Disk Management

lsblk
Show disks/­par­titions
fdisk -l
List of disks and partitions
dmesg
list of all kernel boot messages
lshw
List of hardware
lsscsi
List of scsci-­devices
/proc
Info about kernel in files and folders
sudo badblocks
search bad blocks (-w: write mode, -s: show mode)
sudo dd if=[input] of=[ou­tput]
Copy and convert files
making a new partition
sudo fdisk -l
harde schijven herkennen
sudo fdisk /dev/sdb
harde schijf openen met fdisk
p
bekijken van de huidige partitie tabel
n
toevoegen partitie
p
contro­leren nieuwe partit­ietabel
w
Opslaan
sudo mkfs.ext4 /dev/sdb1
partite voorzien van filesystem
sudo tune2fs -l /dev/sdb1
parameters van ext2, ext3 en ext4 te zien en aan te passen
sudo fsck /dev/sda1
filesystem checken op fouten
Mounting a filesystem
sudo mkdir /var/ftp
een directory maken indien nodig
sudo mount -t ext4 /dev/sdb1 /var/ftp
mounten van filesy­stem(-t is optioneel)
sudo chmod o+rw /var/ftp
mountpoint rechten geven
sudo umount /var/ftp
gemount filesy­steem unmounten
mount | grep "­sd[­ab]­"
mounted filesy­stems weergeven
df -h | grep "­sd[­ab]­"
geeft de vrije ruimte weer
lsblk
geeft een overzich van alle block devices
du
geeft de disk-usage weer
/etc/fstab
geef aan welke file systems automa­tisch gestart moeten worden
 
Je kan hier ook zelf mounts toevoegen
ro
mount read only
noexec
geen binary of scripts kunnen uitgevoerd worden
nosuid
er word geen rekening gehouden met setuid­-bits
noacl
geen acl-re­chten kunnen gelegd worden
lsof
overzicht van alle open files
fuser
wie met welke commando's aan het werken is
iostat
io statis­tieken weergeven
iotop
io statis­tieken met de hoogste bovenaan
vmstat
statis­tieken over het gebruik van ram
UUID
Univer­sally Unique Identifier => objecten als uniek aanduiden
tune2fs , blkid, ls *l , file -s
UUID achter­halen
/etc/fstab
werken met UUID
/boot/­gru­b/g­rub.cfs
^

RAID

Raid 0
striping, totale cappac­iteit van alle schijven, snel, alle cappac­iteit, niet betrou­wbaar
Raid 1
mirror, helft totale capaciteit beschi­kbaar, betrou­wbaar(1 disk mag crashen), oneffi­cient gebruik opslag­cap­aciteit
Raid 5
parity block, som van capaciteit alle drives - (som van capaciteit alle drives / aantal drives), zeer betrou­wbaar, snel, trager dan raid1
nested raid
meerdere raid types tegelijk
Drives klaarmaken voor raid
sudo fdisk /dev/sdx
n
new
p
primary
1
partnr
<en­ter>
first cylinder
<en­ter>
last cylinder
t
type
1
partnr
fd
RAID autodetect
w
aanpas­singen wegsch­rijven
aanmaken RAID1
sudo mdadm -- examine /dev/sdc /dev/sdd
disks checken (type fd)
sudo mdadm --examine /dev/sdc1 /dev/sdd1
partities checke­n(h­ebben nog geen md-sup­erblock omdat ze nog geen deel uitmaken van een raid)
sudo mdadm --create /dev/md0 --leve­l=m­irror --raid­-de­vices=2 /dev/sdc1 /dev/sdd1
RAID1 set maken van de partities
mdadm --examine /dev/sdc1 /dev/sdd1
partities checke­n(maken nu deel uit van de RAID set)
cat /proc/­mdstat
status bekijken
sudo mkfs.ext4 /dev/md0
filesy­steem geven
sudo mkdir /var/f­tpfiles
mount map aanmaken
sudo mount /dev/md0 /var/f­tpfiles
mounten
toevoegen in /etc/fstab
dit zorgt ervoor dat dit beschi­kbaar blijft na reboot
spare
is een block device dat wacht to een raid member failed
sudo mdadm --manage /dev/md0 --add /dev/sde1
toevoegen van een spare
sudo mdadm --detail /dev/md0
checken van de spare drive (state spare)
sudo mdadm --grow --raid­-de­vices=3 /dev/md0
spare betrekken bij de raid
sudo mdadm --detail /dev/md0
checken spare (state active)
sudo mdadm --fail /dev/md0 /dev/ssd1
een raid member als failing aanduiden
sudo mdadm --remove /dev/md0 /dev/ssd1
een gefailde raid member verwij­deren
sudo mdam --grow --raid­-de­vices=2 /dev/md0
aantal members van de raid-set veranderen
sudo mdadm --zero­-su­per­block /dev/ssd1
superb­loc­k-info verwij­deren
Raid5 maken
sudo mdadm --create /dev/md1 --level=5 --raid­-de­vices=3 /dev/sdf1 /dev/sdg1 /dev/sdh1
aanmaken van de raid partities
mdadm --examine /dev/sdf1 /dev/sdg1 /dev/sdh1
partities checken
sudo mdadm --detail /dev/md1
raid device checken
nieuw raid5 device
sudo mkfs.ext4 /dev/md1
filesy­steem toekennen
sudo mkdir /var/www
mount directory aanmaken
sudo mount /dev/md1 /var/www
de raid mounten op de directory
toevoegen in /etc/fstab
om demount te behouden na reboot
sudo mdadm --stop /dev/md1
raid stoppen en de gebruikte schijven kunnen nu opnieuw gebruikt worden

Users - Groups

whoami
toon username
who
toon info over wie ingelogd is
who am i
toont info over wie ingelogd is in je huidige sessie
w
toon wie ingelogd is en wat ze doen
id
toont je user id, primary group id en een lijst van goepen waar je lid van bent
/etc/p­asswd
local user database
root
superuserm user id 0
useradd
een user toevoegen
/etc/d­efa­ult­/us­eradd
default user options, useradd -D
userdel
delete een user
usermod
proppe­rties van een user wijzigen
passwd
user een password toe te kennen
/etc/s­hadow
user passwords worden hier geencr­ypeerd bewaart, read only(a­lleen root kan erbij)
crypt passwd
password encryp­teren
openssl passwd
een geencr­ypteerd wachtwoord aanmaken om als argument te gebruiken bij de optie -p van het commando "­use­rad­d"
chage -l student
password defaults
als het password start met "­!" in /etc/s­hadow kan het password niet gebruikt worden
usermod -L <us­ern­ame>
locking, disablingm suspening een user account
je kan /etc/p­asswd en /etc/s­hadow aanpassen via vi(nano)
useradd -m
create home directory
/etc/skel/
dit word altijd gekopieerd naar elk nieuwe home directory
userdel -r
deleten van de user (-r = en zijn home folder)
usermod -s
login shell(­ges­pec­ifieerd in /etc/p­asswd)
sudo su -
je wordt root
groups
users kunnen toegevoegd worden aan een groep en je kan permissies geven op group level
groupadd
nieuwe group aanmaken
/etc/group
bevat 4 velden: group name, password, group id, list of members
usermod -a -G <gr­oup­nam­e> <us­ern­ame>
een user in een bepaalde group zetten
groupmod
wijzi een group (vb group name)
groupdel
verwijder een group
groups
toon een lijsts van groepen waartoe een user behoort
gpasswd
geef de controle van group membership aan een andere user(man gpasswd /etc/g­shadow)
vigr
edit /etc/group
vim /etc/p­asswd
voeg een user toe
vim /etc/group
voeg een group toe
openssl passwd
encryper je passwoord
vim /etc/s­hadow
voeg een lijn toe voor je user en gebruik je geencr­ypteerd passwoord
mkdir /home/­veerle
maak een homedi­rectory met het juiste ownership
copy inhoud /etc/skel
adduser
altern­atied voor useradd maar je kan het passwoord onmidd­elijk opgeven en de homedir wordt ook aangemaakt
addgroup
altern­atief voor groupadd group id wordt getoond na uitvoeren van het commando

Software instal­latie

packages
dpkg
Debian Package management
apt
Advanced Packaging Tool
GUI front-end
ubuntu sofware center, synaptic
RedHat: .rpm
rpm, yum
dpkg -l
lijst van alle geinst­all­eerde packages
dpkg -l $package
informatie over een indivi­dueel package
dpkg -p $package
toon details van een indivi­dueel package
dpkg -S $path
zoek welk package een bepaalde file heeft geinst­alleerd
dpkg -L $package
toon de bestanden die geinst­alleerd zijn door een bepaald programma
wget -q $url
.deb file downloaden via browser
sudo dpkg -i $packa­geT­oIn­sta­ll.deb
install een dpkg file
sudo dpkg -r $package
verwijder een package
sudo dpkg -P $package
verwijderd ook alle config­uratie bestanden
sudo apt-get update
bekijkt de reposi­tories in "­/et­c/a­pt/­sou­rce­s.l­ist­", van elke repository wordt de package metadata afgehaald en in de APT cache geplaatst (/var/­lib­/ap­t/l­ist­s/...)
sudo apt-get install $package
zoekt naar packag­ename in de APT-cache (/var/­lib­/ap­t/l­ist­s/..), indien gevonden download het de .deb files en roept het dpkg aan om het te installen
sudo apt-get clean
maak /var/c­ach­e/a­pt/­arc­hives leeg
sudo apt-get remove $package
verwijder een package
sudo apt-get purge $package
verwijder een package inclusief de config files
sudo apt-get upgrade
een veilige update voor alle software die op dit moment is geinst­alleerd
apt-cache search $package
doorziek de APT-ca­che­(geen netwerk verbinding nodig)
PPA
personal package archives
reposi­tories voor packages die niet standaard in ubuntu zitten
sudo apt-ad­d-r­epo­sitory ppa:<ppa packag­e>
toevoegen van een PPA
sudo apt-ad­d-r­epo­sitory -r ppa:<ppa packag­e>
verwij­deren van een PPA
sudo apt-get update
openen van reposi­tor­y-w­ijz­igingen in APT-cache
apt-cache search­<pa­cka­ge>
zoeken van de package
sudo apt-get install <pa­cka­ge>
instal­leren van de package
tar
bewaar een direct­ory­str­uct­uur­(in­clusief owner, permis­sions) in een bestand, een tar bestand wordt dikwijls gecomp­rimeerd gzip, dit noemt men dan een tarball
sudo tar -cf /tmp/h­ome.tar /home
maakt een back up van de /home directory en plaatst deze in de /tmp direct­ory­(op­ties: c: create, x: extract, f: schrijf weg naar een file niet naar STDOUT, z: comprimeer met gzip(.t­ar.gz), j:comp­rimeer met bzip2(.tbz2))
Builden Source
sudo apt-get install build-­ess­ential
instal­leert build-­ess­ential
instal­leren van source in 4 stappen
downloaden en uitpakken van de source code
./conf­igure
checken van systee­mva­ria­belen, of de nodige libaries aanwezig zijn, maakt een Make-file aan uit deze informatie
make
compileren van de source code
sudo make install
de gecomp­ileerde bestanden in de juiste mappen kopieren
curl <ur­l>
programma uitvoeren met curl

Processes

PID
Process ID
PPID
Parent Process ID
init
The init process, PID=1, started by the kernel
kill
to stop a process
daemon
Process that starts with the boot
zombie
A killed process that is visible
$$
Current Process ID
$PPID
Parent ID
pidof
find all process by name
ps
snapshot of current processes
pgrep
find a process by name
top
Orders processes by cpu usage
kill -1
SIGHUP let process reread config file
kill -15
SIGTERM standard kill
kill -9
SIGKILL kernel will stop the process
kill -19
SIGSTOP suspend process
kill -18
SIGCONT reactivate process
pkill [name]
kill -15 to all processes with that name
killall [name]
^
nice / renice [PID]
Change process priority (nice at the start of a process)
mkfifo
Make a pipe
jobs
Shows jobs running in the background
jobs -p
PID of background processes
fg
Background process to foreground
bg
Restart a background process

File security

inode
datast­ructuur die de metadata van een file bevat
file types (ls -l)
-
regular file
d
directory
c
character device file(p­rog­ramma's laten commun­iceren met hardware)
b
block device file
s
local domain socket­(co­nne­cties tussen processen)
p
named pipe(c­omm­uni­catie tussen processen)
l
symbolick link
df -i
bevat alle inodes
ls -li
elke inode laten zien met hun uniek nr
hardlink
link op inode, als 1 bestand verwijderd word heb je het andere nog
ln eenBestand eenHar­dLink
hardlink aanmaken
symbolic links
geen link op inodes, krijgt eigen inode(naam op naam mapping)
ln -s eenDir­ectory nogEee­nSy­mbo­licLink
een symbolic link aanmaken
rm [linknaam]
verwijderd de link
Scheduling
at 20:00
commando laten uitvoeren op een bepaald tijdstip
atq / at -l
laat een lijst zien van alle one time jobs
atrm
een job uit de queue verwij­deren
/etc/a­t.allow
lijst van users die jobs mogen uitvoeren
/etc/a­t.deny
lijst van users die geen jubs mogen uitvoeren
crontab
jobs op specifieke tijdst­ippen herhalen
formaat: *
minute hour day of the month month
crontab -e
crontab file editeren
crontab -l
crontab file tonen
/etc/c­ron.allow
lijst van users die crontabs mogen uitvoeren
/etc/c­ron.deny
lijst van users die crontabs niet mogen gebruiken
ls -ld /etc/c­ron.*
voor speciale jobs, met specifieke controle van tijdstip van uitvoering
memory management
head -5 /proc/­meminfo
memory en cache tonen
free -om
memory en cache leesbaar tonen in MB
swap space
gaat geheugen halen bij de HDD
swap partitie aanmaken
sudo fdisk -l | grep /dev/sdb
sudo mkswap /dev/sdb1
sudo swapon /dev/sdb1
swap aanzetten
sudo dd if=/de­v/zero of=/sm­all­swa­pfile bs=1024 count4096
swapfile aanmaken
/etc/fstab
swap space
vmstat -SM 5 3
grafieken van ram en swapfile (SM= in MB, 5=om de 5 sec, 3=3 maal uitvoeren)

Octal permis­sions

binary
octal
permis­sions
000
0
---
001
1
--x
010
2
-w-
011
3
-wx
100
4
r--
101
5
r-x
110
6
rw-
111
7
rwx

LVM

physical volumes aanmaken
sudo fdisk /dev/sdc1
partitie aanmaken
sudo pvcreate /dev/sdc1
device toevoegen aan lvm
sudo lvmdis­kscan | grep sd
lijst van block devices die gebruikt kunnen worden met LVM
volume groups
sudo vgcreate vg /dev/sdc1
creeer een volume group
sudo vgs
overzicht van alle volume groups
sudo vgscan
scan alle schijven voor bestaande volume groups en update het bestand /etv/l­vm/.cache
sudo vgdisplay
meer getail­leerde informatie over een volume groups
sudo pvs
welke devices bekent zijn bij lvm
sudo pvscan
scan alle schijven voor bestaande physical volumes
sudo pvdisplay /dev/sdc1
meer getail­leerde info over een physical volume
logical volumes
sudo lvcreate --size 500m vg
creeert een logical volume in een volume group(vg) en deze is 500MB groot (naam kan je instellen door (-n ) standaard is dit lvol0)
sudo mkfs.ext4 /dev/v­g/lvol0
deze logical volume een filesystem geven
sudo mkdir /var/www
een directory maken voor de logical volume te mounten
sudo mount /dev/v­g/lvol0 /var/www/
het mounten van de logical volume
sudo cp index.html /var/www/
zoals als je ziet kan je hier gewoon mee werken als een partitie
sudo lvs
alle bestaande logical volumes displa­yen(w= writeable, i=inherit, a=active, o=open)
sudo lvscan
scan alle schijven voor bestaande logical volumes
sudo lvdisplay vg/lvol0
meer info over een logical volume
sudo vgscan --mknodes -v
mount behouden na reboot­(mk­nodes= contro­leert de LVM special files in /dev, v verbose )
sudo nano /etc/fstab
/dev/v­g/lvol0 <ta­b> /var/www <ta­b> ext4 <ta­b> defaults <ta­b> 0 <ta­b> 0
sudo lvextend -L +100 /dev/v­g/lvol0
resive een logical volume
sudo lvrename vg/lvl0 vg/new­namelv
logical volume hernoemen
sudo lvremove vg/new­namelv
logical volume verwij­deren
resize, hernoemen en verwij­deren werkt ook bij physical volumes
manage volume groups
sudo vgreduce vg /dev/sdb1
verwij­deren van een physical volume uit een volume group
sudo vgchange -xn vg1
wijzigen van de properties (xy sta resize toe, xn sta resize niet toe)
sudo vgchange -l16 vg1
het maximun aantal logical volumes
sudo vgchange -p8 vg1
maximun aantal physical volumes
sudo vgmerge vg1 vg2
voeg 2 volume groups samen
sudo vgremove vg1
verwijder een volume group
mirror a logical volume
3 physical nodig die even groot zijn, 2 daarvan worden gebruikt als mirror en de derde wordt gebruikt als mirrorlog
sudo lvcreate --size 200m -n lvmir -m 1 vgmir
maak een logische volume mirror aan(-m 1= disk word 1x gemirr­ored)
sudo lvcreate -L100M -s -n snaplv vg/lvol1
creeer een snapshot van alle date op een logisch volume op dat moment

File permis­sions - acl

chgrp
wijzig de group owner
chown
wijzig de user owner
cut -d: -f1 /etc/p­asswd | column
lijst van user accounts
rwx
r=read w=write x=execute
three sets of rwx: 1st=type of file, 2-4=pe­rmi­ssions for the user owner, 5-7=pe­rmi­ssions for the group owner, 8-10=p­erm­issions for others
chmod
setting permis­sions
chmod u+x
users de exute permissie geven
chmod g-r
group de read permission verwij­deren
chmod o-r
other de read permission verwij­deren
chmod a+x
all de write permissie geven
chmod +x
^(dus a is niet nodig)
chmod u=rw
expliciet permissies toekennen
chmod u=rwx, ug+rw, o=r
een combinatie
umask
bepaal de default permissie voor een file of directory
mkdir -m 700 mydir
permissie meegeven tijdens creatie van een directory, 700= rwx------ = user has rwx permission groups and others has no permission
t
sticky bit +x(dir­ectory)
T
sticky bit, geen x voor others­(di­rec­tory)
s
setgid +x(dir­ectory)
S
setgid, geen x voor group owner(­dir­ectory)
sudo /etc/fstab
4de veld acl is voor files en direct­ories te beschermen
getfacl testfile
laat dde permissies van de testfile zien
setfacl -m u:test­user:7 testfile
geeft testuser rwx permissie op testfile
setfacl -m g:test­group:6 testfile
geeft testgroup de permissie rw- op testfile
setfacl -x testuser testfile
verwijderd de acl entry van testuser op testfile
setfacl -b testfile
verwijder de hele acl file van een bestand
acl mask definieert het maximum aantal effectieve permissies voor een acl entry, wordt berekend telkens als "­set­fac­l" of "­chm­od" wordt uitgev­oerd, maar dit kan je voorkomen door de optie "­--n­o-m­ask­" te gebruiken
setfacl --nomask -m u:test­user:7 testfile

SSH en VNC

SSH
sudo apt-get install openss­h-s­erver
instal­latie
sudo nano /etc/s­sh/­ssh­d_c­onfig
config­uratie
Listen­Address - indien we op een bepaalde NIC willen luisteren
MaxSes­sions - Hoeveel gelijk­tijdige connecties toegelaten worden
Permit­Roo­tLogin - op “no” voor security (na login sudo…)
DenyUsers - Deze gebruikers mogen niet inlogen over ssh
DenyGroups - De gebruikers van deze groepen mogen niet inloggen
SSH gebruikt poort 22 op de Server
grep ssh /etc/s­ervices
toont poort 22 over TCP en UDP
netstat -antl
Port 22
netstat -atl
Port ssh
sudo apt-get install openss­h-c­lient
instal­lat­ie(­sta­ndaard geinst­all­eerd)
/etc/s­sh/­ssh­_config
config­uratie (standaard goed)
ssh <ge­bru­ike­rsn­aam­>@<­ser­ver­ip>
server connectie
Indien je bevestigd wordt de public key van de server opgeslaan op de client in ~/.ssh­/kn­own­_hosts
SSH met keys
er wordt een privat­e/p­ubl­ic-­keypair gemaakt
ssh-keygen -t rsa
aanmaken SSH keypai­r(p­riv­ate-key kan extra beveiligd worden met een passph­rase)
Het keypair staat nu in ~/.ssh
privat­e-key: id_rsa
 
public­-key: id_rsa.pub
ssh-co­py-id -i ~/.ssh­/id­_rs­a.pub <ge­bru­ike­r>@­<se­rve­rip>
Public key naar de server kopieren
sudo service ssh reload
Reloaden van de sshd-c­onf­igu­ratie
ssh-agent bash
start een nieuwe shell met de agent running
ssh-add ~/.ssh­/id_rsa
houdt de private key(s) in het geheugen
Hostba­sed­-au­the­nti­catie
/etc/s­sh/­ssh­_config
Aanpas­singen op de client
HostBa­sed­Aut­hen­tic­ation yes
Enable­SSH­KeySign yes
Rhosts­RSA­Aut­hen­tic­ation yes
sudo ssh-keygen -t rsa
Aanmaken van het RSA host-k­eypair
Public-key van de client overbr­engen
cat /etc/s­sh/­ssh­_ho­st_­rsa­_ke­y.pub
De Public-key van de client tonen
 
Tekst kopieren naar klembord
ssh studen­t@<­ipv­ans­erv­er>
ssh-co­nnectie leggen naar server
sudo vi /etc/s­sh/­ssh­_kn­own­_hosts
Tekst plakken in ssh_kn­own­_hosts
Public-key van de client overbr­engen via ssh
openss­h-s­erver instal­leren op de client
de public­-RS­A-h­ost-key van de client moet in de file /etc/s­sh/­ssh­_kn­own­_hosts van de server komen
ssh-ke­yscan -t rsa ubdesk.pxl.be > /etc/s­sh/­ssh­_kn­own­_hosts
op de server
openss­h-s­erver verwij­deren van de client
SSH shosts­-file
~/.shosts
vanaf een client die hierin staat (via zijn dns-naam) kan een gebruiker inloggen met de gespec­ifi­eerde userid op de server.
<se­rve­rna­am> <us­eri­d-d­at-­mag­-in­log­gen>
moet deze layout hebben
op server in /etc/s­sh/­ssh­d_conf
Rhosts­RSA­Aut­hen­tic­ation yes
 
HostBa­sed­Aut­hen­tic­ation yes
 
Ignore­Rhosts no - dan wordt de .shosts file uitgelezen
 
Ignore­Use­rKn­own­Hosts yes - enkel kijken nr /etc/s­sh/­ssh­_kn­own­_hosts
sudo service ssh reload
/etc/h­ost­s-file
in te stellen op de server
sudo vi /etc/hosts
toevoegen <ip van deskto­p>
ssh <ip­van­ser­ver>
als je geen gebruiker opgeeft, wordt de connectie gelegd met als username die van de huidig ingelogde gebruiker
SSH-co­nne­cties debuggen
sudo service ssh stop
Eerst moet je de huidige ssh-server stoppen
sudo /usr/s­bin­/sshd -ddd
Hierna kan je de versie met debugging starten
 
Connecteer nu vanaf de client en kijk naar de meldingen in het termin­alv­enster van de server
SSH - extra security
/etc/s­sh/­ssh­d_c­onfig
AllowUsers en DenyUsers
AllowUsers gert guy@we­b.p­xl.be tom@17­2.1­6.2­31.55 bart@*.ki­nep­olis.be
Al wie niet in de AllowUsers is opgenomen, is dan wel automa­tisch geweigerd !!!
 
Men kan ook werken met AllowG­roups en DenyGroups
/etc/h­ost­s.allow
om verbin­dingen vanaf andere PCs toe te laten of niet
 
sshd: 172.16.23­1.0­/25­5.2­55.2­55.0
/etc/h­ost­s.deny
Alle andere PCs en subnets verbieden
 
sshd: ALL
SSH - motd en nologin
motd
inhoud wordt afgedrukt als in sshd_c­onfig PrintMotd op yes staat
nologin
indien deze file bestaat, kan niemand inloggen, behalve root, en wordt de tekst in dit bestand getoond
SSH - commando’s sturen
ssh <ge­bru­ike­r>@­<ss­h-s­erv­erv­er> ‘<c­omm­and­o>’
in plaats van een intera­ctieve sessie te starten met ssh, kan je ook onmidd­elijk een commando meegeven aan je connectie
 
na het uitvoeren van het commando stopt de connectie
ssh -t studen­t@1­72.1­6.2­31.55 ‘vi test.sh’
Gebruik optie t voor een intera­ctieve sessie te starten
 
connectie stopt pas nadat vi is afgesloten
SSH - files kopiëren met scp
scp <lokaal bestan­d> <us­er>­@<s­erv­eri­p>:­<do­elm­ap>
secure copy (over ssh) tussen twee PCs, waarvan één de lokale PC moet zijn
 
je kan ook een bestand kopiëren van de server naar client
 
je kan een bestand tijdens het kopiëren ook hernoemen
scp -r <lokale map> <us­er>­@<s­erv­eri­p>:­<do­elm­ap>
kopieert recursief de inhoud van de map en submappen
SSH - secure ftp
sftp <ge­bru­ike­r>@­<se­rve­rip>
help, ls/lls, cd/lcd, pwd/lpwd, get/put, bye/quit
SSH - sshfs
sudo apt-get install sshfs
sshfs instal­leren
sudo usermod -a -G fuser student
uzelf aan de groep fuser toevoegen
mkdir sshmount
directory aanmaken onder je homedir
directory over ssh lokaal mounten
sudo vi /etc/s­sh/­ssh­_config
Server­Ali­veI­nterval 120
 
sudo service ssh reload
sudo fusermount -u <mo­unt­poi­nt>
unmounten van een sshfs-­mount
VNC
Virtual Network Computing
Remote Control via Desktop Sharing

Scripting

nano <sc­rip­tna­am>
Aanmaken van een nieuw script
 
een script kan je de extensie “.sh” geven
#!/bin­/bash
geeft aan wat er moet worden gebruikt om de commando’s te verstaan
regel die start met een #-teken
Commentaar
chmod +x <sc­rip­tna­am>
Uitvoe­rbaar maken
echo -n “Geef een getal:”
We stellen eerst de vraag
 
de optie -n zorgt er voor dat de cursor achter de vraag blijft staan
read vGetal
Dan vragen we een waarde en kennen deze toe aan een variabele
[ $vGetal -gt 100 ] && echo “Groter” || echo “Kleiner”
Indien de inhoud van de variabele groter is dan 100 wordt de tekst “Groter” getoond, anders wordt de tekst “Kleiner” getoond
if-the­n-else
if
then
else
fi
if-the­n-elif
Je kan if-the­n-else -struc­turen in elkaar nesten met if-the­n-elif
for-loop
( for teller in 1 2 3 4 5 )
losse items
( for teller in {1..5} )
een range
( for teller in
seq 1 5
)
een range
( for file in
ls *
)
bestanden verkregen door file-g­lobbing
while-loop
Om de commando’s die tussen de “do” en “done” van de while staan te blijven herhalen zolang als aan de voorwaarde voldaan is
while <vo­orw­aar­de> do commando’s done
until-loop
Om de commando’s die tussen de “do” en “done” van de until staan te blijven herhalen totdat aan de voorwaarde voldaan is
until <vo­orw­aar­de> do commando’s done
script parameters
optels­om.sh 15 387 85 97
parameters 15, 378, 85 en 97
Parameters worden opgeslagen in het werkge­heugen. De verwijzing naar de parameter gebeurt via $1, $2, $3,…$9
Maximaal zijn er 9 verwij­zig­ingen mogelijk.
$#
Verwijst naar het aantal gegeven parame­ters.
$*
Geeft als resultaat één string waarin alle parameters voorkomen, gescheiden door een delimiter gedefi­nieerd in de systee­mva­riabele IFS.
$@
Geeft als output alle parameters waarbij elke parameter als indivi­duele string kan worden gebruikt.
$?
laatste return code
$$
PID van het script
shift through parameters
$2 -> $1, $3 -> $2,
de verwij­zig­ingen worden geshift!
de waarde van $1 gaat bij iedere shift verloren: want $1 krijgt de waarde van $2 , $2 krijgt de waarde van $3
Parameters contro­leren met regex
=~
duidt op een regular expression
[[ …]]
nodig als er met regex wordt gewerkt
[[$1 =~ ^[a-zA­-Z]+$ ]]
een voorbeeld
shell functions
function functi­enaam
{
command1
command2
command…
}
exit
Elk commando geeft een return code (exit-­status) terug aan zijn host-p­rocess
Waarde tussen [0..255], 0 = Goed, [1..255] is fout-code.
exit
beëindigen van een shells­cript, exit-s­tatus als argument
return
beëindigen van een functie, exit-s­tatus als argument
(( ))
wiskundige tests
(( %x < 10 ))
een voorbeeld functie
let
built-in shell functie
wiskundige bereke­ningen
let x="3­+4"
Voorbeeld

operatoren

-lt
less than
-gt
greater than
-ge
greather or equal to
-le
less or equal to
-eq
equal to
-ne
not equal to
=
equals a string
!=
Not equals a string
-d
does dir exist
-f
does file exist
-a
and
       
 

Comments

Misspelled document title. It's Ubuntu Server, not Ububtu. (An "n" not a "b").

would be nice if this was in a real language

klingon i would understand... but this???

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Linux Command Line Cheat Sheet
          mod_rewrite Cheat Sheet
          MySQL Cheat Sheet