|
/etc/network/interfaces
|
Nic configureren
|
|
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.168.1.1]
|
Add a default gateway
|
|
lsblk
|
Show disks/partitions
|
|
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=[output]
|
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
|
controleren nieuwe partitietabel
|
|
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 filesystem(-t is optioneel)
|
|
sudo chmod o+rw /var/ftp
|
mountpoint rechten geven
|
|
sudo umount /var/ftp
|
gemount filesysteem unmounten
|
|
mount | grep "sd[ab]"
|
mounted filesystems 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 automatisch 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-rechten kunnen gelegd worden
|
|
lsof
|
overzicht van alle open files
|
|
fuser
|
wie met welke commando's aan het werken is
|
|
iostat
|
io statistieken weergeven
|
|
iotop
|
io statistieken met de hoogste bovenaan
|
|
vmstat
|
statistieken over het gebruik van ram
|
|
UUID
|
Universally Unique Identifier => objecten als uniek aanduiden
|
|
tune2fs , blkid, ls *l , file -s
|
UUID achterhalen
|
|
/etc/fstab
|
werken met UUID
|
|
/boot/grub/grub.cfs
|
^
|
|
Raid 0
|
striping, totale cappaciteit van alle schijven, snel, alle cappaciteit, niet betrouwbaar
|
|
Raid 1
|
mirror, helft totale capaciteit beschikbaar, betrouwbaar(1 disk mag crashen), onefficient gebruik opslagcapaciteit
|
|
Raid 5
|
parity block, som van capaciteit alle drives - (som van capaciteit alle drives / aantal drives), zeer betrouwbaar, snel, trager dan raid1
|
|
nested raid
|
meerdere raid types tegelijk
|
|
Drives klaarmaken voor raid
|
|
|
sudo fdisk /dev/sdx
|
|
|
n
|
new
|
|
p
|
primary
|
|
1
|
partnr
|
|
<enter>
|
first cylinder
|
|
<enter>
|
last cylinder
|
|
t
|
type
|
|
1
|
partnr
|
|
fd
|
RAID autodetect
|
|
w
|
aanpassingen wegschrijven
|
|
aanmaken RAID1
|
|
|
sudo mdadm -- examine /dev/sdc /dev/sdd
|
disks checken (type fd)
|
|
sudo mdadm --examine /dev/sdc1 /dev/sdd1
|
partities checken(hebben nog geen md-superblock omdat ze nog geen deel uitmaken van een raid)
|
|
sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdc1 /dev/sdd1
|
RAID1 set maken van de partities
|
|
mdadm --examine /dev/sdc1 /dev/sdd1
|
partities checken(maken nu deel uit van de RAID set)
|
|
cat /proc/mdstat
|
status bekijken
|
|
sudo mkfs.ext4 /dev/md0
|
filesysteem geven
|
|
sudo mkdir /var/ftpfiles
|
mount map aanmaken
|
|
sudo mount /dev/md0 /var/ftpfiles
|
mounten
|
|
toevoegen in /etc/fstab
|
dit zorgt ervoor dat dit beschikbaar 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-devices=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 verwijderen
|
|
sudo mdam --grow --raid-devices=2 /dev/md0
|
aantal members van de raid-set veranderen
|
|
sudo mdadm --zero-superblock /dev/ssd1
|
superblock-info verwijderen
|
|
Raid5 maken
|
|
|
sudo mdadm --create /dev/md1 --level=5 --raid-devices=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
|
filesysteem 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
|
|
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/passwd
|
local user database
|
|
root
|
superuserm user id 0
|
|
useradd
|
een user toevoegen
|
|
/etc/default/useradd
|
default user options, useradd -D
|
|
userdel
|
delete een user
|
|
usermod
|
propperties van een user wijzigen
|
|
passwd
|
user een password toe te kennen
|
|
/etc/shadow
|
user passwords worden hier geencrypeerd bewaart, read only(alleen root kan erbij)
|
|
crypt passwd
|
password encrypteren
|
|
openssl passwd
|
een geencrypteerd wachtwoord aanmaken om als argument te gebruiken bij de optie -p van het commando "useradd"
|
|
chage -l student
|
password defaults
|
|
als het password start met "!" in /etc/shadow kan het password niet gebruikt worden
|
|
|
usermod -L <username>
|
locking, disablingm suspening een user account
|
|
je kan /etc/passwd en /etc/shadow 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(gespecifieerd in /etc/passwd)
|
|
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 <groupname> <username>
|
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/gshadow)
|
|
vigr
|
edit /etc/group
|
|
vim /etc/passwd
|
voeg een user toe
|
|
vim /etc/group
|
voeg een group toe
|
|
openssl passwd
|
encryper je passwoord
|
|
vim /etc/shadow
|
voeg een lijn toe voor je user en gebruik je geencrypteerd passwoord
|
|
mkdir /home/veerle
|
maak een homedirectory met het juiste ownership
|
|
copy inhoud /etc/skel
|
|
|
adduser
|
alternatied voor useradd maar je kan het passwoord onmiddelijk opgeven en de homedir wordt ook aangemaakt
|
|
addgroup
|
alternatief voor groupadd group id wordt getoond na uitvoeren van het commando
|
|
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 geinstalleerde packages
|
|
dpkg -l $package
|
informatie over een individueel package
|
|
dpkg -p $package
|
toon details van een individueel package
|
|
dpkg -S $path
|
zoek welk package een bepaalde file heeft geinstalleerd
|
|
dpkg -L $package
|
toon de bestanden die geinstalleerd zijn door een bepaald programma
|
|
wget -q $url
|
.deb file downloaden via browser
|
|
sudo dpkg -i $packageToInstall.deb
|
install een dpkg file
|
|
sudo dpkg -r $package
|
verwijder een package
|
|
sudo dpkg -P $package
|
verwijderd ook alle configuratie bestanden
|
|
sudo apt-get update
|
bekijkt de repositories in "/etc/apt/sources.list", van elke repository wordt de package metadata afgehaald en in de APT cache geplaatst (/var/lib/apt/lists/...)
|
|
sudo apt-get install $package
|
zoekt naar packagename in de APT-cache (/var/lib/apt/lists/..), indien gevonden download het de .deb files en roept het dpkg aan om het te installen
|
|
sudo apt-get clean
|
maak /var/cache/apt/archives 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 geinstalleerd
|
|
apt-cache search $package
|
doorziek de APT-cache(geen netwerk verbinding nodig)
|
|
PPA
|
personal package archives
|
|
repositories voor packages die niet standaard in ubuntu zitten
|
|
|
sudo apt-add-repository ppa:<ppa package>
|
toevoegen van een PPA
|
|
sudo apt-add-repository -r ppa:<ppa package>
|
verwijderen van een PPA
|
|
sudo apt-get update
|
openen van repository-wijzigingen in APT-cache
|
|
apt-cache search<package>
|
zoeken van de package
|
|
sudo apt-get install <package>
|
installeren van de package
|
|
tar
|
|
|
bewaar een directorystructuur(inclusief owner, permissions) in een bestand, een tar bestand wordt dikwijls gecomprimeerd gzip, dit noemt men dan een tarball
|
|
|
sudo tar -cf /tmp/home.tar /home
|
maakt een back up van de /home directory en plaatst deze in de /tmp directory(opties: c: create, x: extract, f: schrijf weg naar een file niet naar STDOUT, z: comprimeer met gzip(.tar.gz), j:comprimeer met bzip2(.tbz2))
|
|
Builden Source
|
|
|
sudo apt-get install build-essential
|
installeert build-essential
|
|
installeren van source in 4 stappen
|
|
|
downloaden en uitpakken van de source code
|
|
|
./configure
|
checken van systeemvariabelen, of de nodige libaries aanwezig zijn, maakt een Make-file aan uit deze informatie
|
|
make
|
compileren van de source code
|
|
sudo make install
|
de gecompileerde bestanden in de juiste mappen kopieren
|
|
curl <url>
|
programma uitvoeren met curl
|
|
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
|
|
inode
|
datastructuur die de metadata van een file bevat
|
|
file types (ls -l)
|
|
|
-
|
regular file
|
|
d
|
directory
|
|
c
|
character device file(programma's laten communiceren met hardware)
|
|
b
|
block device file
|
|
s
|
local domain socket(connecties tussen processen)
|
|
p
|
named pipe(communicatie 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 eenHardLink
|
hardlink aanmaken
|
|
symbolic links
|
geen link op inodes, krijgt eigen inode(naam op naam mapping)
|
|
ln -s eenDirectory nogEeenSymbolicLink
|
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 verwijderen
|
|
/etc/at.allow
|
lijst van users die jobs mogen uitvoeren
|
|
/etc/at.deny
|
lijst van users die geen jubs mogen uitvoeren
|
|
crontab
|
jobs op specifieke tijdstippen herhalen
|
|
formaat: *
|
minute hour day of the month month
|
|
crontab -e
|
crontab file editeren
|
|
crontab -l
|
crontab file tonen
|
|
/etc/cron.allow
|
lijst van users die crontabs mogen uitvoeren
|
|
/etc/cron.deny
|
lijst van users die crontabs niet mogen gebruiken
|
|
ls -ld /etc/cron.*
|
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=/dev/zero of=/smallswapfile 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)
|
|
binary
|
octal
|
permissions
|
|
000
|
0
|
---
|
|
001
|
1
|
--x
|
|
010
|
2
|
-w-
|
|
011
|
3
|
-wx
|
|
100
|
4
|
r--
|
|
101
|
5
|
r-x
|
|
110
|
6
|
rw-
|
|
111
|
7
|
rwx
|
|
physical volumes aanmaken
|
|
|
sudo fdisk /dev/sdc1
|
partitie aanmaken
|
|
sudo pvcreate /dev/sdc1
|
device toevoegen aan lvm
|
|
sudo lvmdiskscan | 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/lvm/.cache
|
|
sudo vgdisplay
|
meer getailleerde 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 getailleerde 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/vg/lvol0
|
deze logical volume een filesystem geven
|
|
sudo mkdir /var/www
|
een directory maken voor de logical volume te mounten
|
|
sudo mount /dev/vg/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 displayen(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(mknodes= controleert de LVM special files in /dev, v verbose )
|
|
sudo nano /etc/fstab
|
/dev/vg/lvol0 <tab> /var/www <tab> ext4 <tab> defaults <tab> 0 <tab> 0
|
|
sudo lvextend -L +100 /dev/vg/lvol0
|
resive een logical volume
|
|
sudo lvrename vg/lvl0 vg/newnamelv
|
logical volume hernoemen
|
|
sudo lvremove vg/newnamelv
|
logical volume verwijderen
|
|
resize, hernoemen en verwijderen werkt ook bij physical volumes
|
|
|
manage volume groups
|
|
|
sudo vgreduce vg /dev/sdb1
|
verwijderen 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 gemirrored)
|
|
sudo lvcreate -L100M -s -n snaplv vg/lvol1
|
creeer een snapshot van alle date op een logisch volume op dat moment
|
|
chgrp
|
wijzig de group owner
|
|
chown
|
wijzig de user owner
|
|
cut -d: -f1 /etc/passwd | column
|
lijst van user accounts
|
|
rwx
|
r=read w=write x=execute
|
|
three sets of rwx: 1st=type of file, 2-4=permissions for the user owner, 5-7=permissions for the group owner, 8-10=permissions for others
|
|
|
chmod
|
setting permissions
|
|
chmod u+x
|
users de exute permissie geven
|
|
chmod g-r
|
group de read permission verwijderen
|
|
chmod o-r
|
other de read permission verwijderen
|
|
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(directory)
|
|
T
|
sticky bit, geen x voor others(directory)
|
|
s
|
setgid +x(directory)
|
|
S
|
setgid, geen x voor group owner(directory)
|
|
sudo /etc/fstab
|
4de veld acl is voor files en directories te beschermen
|
|
getfacl testfile
|
laat dde permissies van de testfile zien
|
|
setfacl -m u:testuser:7 testfile
|
geeft testuser rwx permissie op testfile
|
|
setfacl -m g:testgroup: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 "setfacl" of "chmod" wordt uitgevoerd, maar dit kan je voorkomen door de optie "--no-mask" te gebruiken
|
|
|
setfacl --nomask -m u:testuser:7 testfile
|
|
|
SSH
|
|
|
sudo apt-get install openssh-server
|
installatie
|
|
sudo nano /etc/ssh/sshd_config
|
configuratie
|
|
ListenAddress - indien we op een bepaalde NIC willen luisteren
|
|
|
MaxSessions - Hoeveel gelijktijdige connecties toegelaten worden
|
|
|
PermitRootLogin - 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/services
|
toont poort 22 over TCP en UDP
|
|
netstat -antl
|
Port 22
|
|
netstat -atl
|
Port ssh
|
|
sudo apt-get install openssh-client
|
installatie(standaard geinstalleerd)
|
|
/etc/ssh/ssh_config
|
configuratie (standaard goed)
|
|
ssh <gebruikersnaam>@<serverip>
|
server connectie
|
|
Indien je bevestigd wordt de public key van de server opgeslaan op de client in ~/.ssh/known_hosts
|
|
|
SSH met keys
|
|
|
er wordt een private/public-keypair gemaakt
|
|
|
ssh-keygen -t rsa
|
aanmaken SSH keypair(private-key kan extra beveiligd worden met een passphrase)
|
|
Het keypair staat nu in ~/.ssh
|
private-key: id_rsa
|
|
public-key: id_rsa.pub
|
|
|
ssh-copy-id -i ~/.ssh/id_rsa.pub <gebruiker>@<serverip>
|
Public key naar de server kopieren
|
|
sudo service ssh reload
|
Reloaden van de sshd-configuratie
|
|
ssh-agent bash
|
start een nieuwe shell met de agent running
|
|
ssh-add ~/.ssh/id_rsa
|
houdt de private key(s) in het geheugen
|
|
Hostbased-authenticatie
|
|
|
/etc/ssh/ssh_config
|
Aanpassingen op de client
|
|
HostBasedAuthentication yes
|
|
|
EnableSSHKeySign yes
|
|
|
RhostsRSAAuthentication yes
|
|
|
sudo ssh-keygen -t rsa
|
Aanmaken van het RSA host-keypair
|
|
Public-key van de client overbrengen
|
|
|
cat /etc/ssh/ssh_host_rsa_key.pub
|
De Public-key van de client tonen
|
|
Tekst kopieren naar klembord
|
|
|
ssh student@<ipvanserver>
|
ssh-connectie leggen naar server
|
|
sudo vi /etc/ssh/ssh_known_hosts
|
Tekst plakken in ssh_known_hosts
|
|
Public-key van de client overbrengen via ssh
|
|
|
openssh-server installeren op de client
|
|
|
de public-RSA-host-key van de client moet in de file /etc/ssh/ssh_known_hosts van de server komen
|
|
|
ssh-keyscan -t rsa ubdesk.pxl.be > /etc/ssh/ssh_known_hosts
|
op de server
|
|
openssh-server verwijderen van de client
|
|
|
SSH shosts-file
|
|
|
~/.shosts
|
vanaf een client die hierin staat (via zijn dns-naam) kan een gebruiker inloggen met de gespecifieerde userid op de server.
|
|
<servernaam> <userid-dat-mag-inloggen>
|
moet deze layout hebben
|
|
op server in /etc/ssh/sshd_conf
|
RhostsRSAAuthentication yes
|
|
HostBasedAuthentication yes
|
|
|
IgnoreRhosts no - dan wordt de .shosts file uitgelezen
|
|
|
IgnoreUserKnownHosts yes - enkel kijken nr /etc/ssh/ssh_known_hosts
|
|
|
sudo service ssh reload
|
|
|
/etc/hosts-file
|
in te stellen op de server
|
|
sudo vi /etc/hosts
|
toevoegen <ip van desktop>
|
|
ssh <ipvanserver>
|
als je geen gebruiker opgeeft, wordt de connectie gelegd met als username die van de huidig ingelogde gebruiker
|
|
SSH-connecties debuggen
|
|
|
sudo service ssh stop
|
Eerst moet je de huidige ssh-server stoppen
|
|
sudo /usr/sbin/sshd -ddd
|
Hierna kan je de versie met debugging starten
|
|
Connecteer nu vanaf de client en kijk naar de meldingen in het terminalvenster van de server
|
|
|
SSH - extra security
|
|
|
/etc/ssh/sshd_config
|
AllowUsers en DenyUsers
|
|
AllowUsers gert guy@web.pxl.be tom@172.16.231.55 bart@*.kinepolis.be
|
Al wie niet in de AllowUsers is opgenomen, is dan wel automatisch geweigerd !!!
|
|
Men kan ook werken met AllowGroups en DenyGroups
|
|
|
/etc/hosts.allow
|
om verbindingen vanaf andere PCs toe te laten of niet
|
|
sshd: 172.16.231.0/255.255.255.0
|
|
|
/etc/hosts.deny
|
Alle andere PCs en subnets verbieden
|
|
sshd: ALL
|
|
|
SSH - motd en nologin
|
|
|
motd
|
inhoud wordt afgedrukt als in sshd_config 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 <gebruiker>@<ssh-serverver> ‘<commando>’
|
in plaats van een interactieve sessie te starten met ssh, kan je ook onmiddelijk een commando meegeven aan je connectie
|
|
na het uitvoeren van het commando stopt de connectie
|
|
|
ssh -t student@172.16.231.55 ‘vi test.sh’
|
Gebruik optie t voor een interactieve sessie te starten
|
|
connectie stopt pas nadat vi is afgesloten
|
|
|
SSH - files kopiëren met scp
|
|
|
scp <lokaal bestand> <user>@<serverip>:<doelmap>
|
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> <user>@<serverip>:<doelmap>
|
kopieert recursief de inhoud van de map en submappen
|
|
SSH - secure ftp
|
|
|
sftp <gebruiker>@<serverip>
|
help, ls/lls, cd/lcd, pwd/lpwd, get/put, bye/quit
|
|
SSH - sshfs
|
|
|
sudo apt-get install sshfs
|
sshfs installeren
|
|
sudo usermod -a -G fuser student
|
uzelf aan de groep fuser toevoegen
|
|
mkdir sshmount
|
directory aanmaken onder je homedir
|
|
sshfs student@172.16.231.55: sshmount/
|
directory over ssh lokaal mounten
|
|
sudo vi /etc/ssh/ssh_config
|
ServerAliveInterval 120
|
|
sudo service ssh reload
|
|
|
sudo fusermount -u <mountpoint>
|
unmounten van een sshfs-mount
|
|
VNC
|
|
|
Virtual Network Computing
|
|
|
Remote Control via Desktop Sharing
|
|
|
nano <scriptnaam>
|
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 <scriptnaam>
|
Uitvoerbaar 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-then-else
|
|
|
if
|
|
|
then
|
|
|
else
|
|
|
fi
|
|
|
if-then-elif
|
|
|
Je kan if-then-else -structuren in elkaar nesten met if-then-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-globbing
|
|
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 <voorwaarde> 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 <voorwaarde> do commando’s done
|
|
|
script parameters
|
|
|
optelsom.sh 15 387 85 97
|
parameters 15, 378, 85 en 97
|
|
Parameters worden opgeslagen in het werkgeheugen. De verwijzing naar de parameter gebeurt via $1, $2, $3,…$9
|
|
|
Maximaal zijn er 9 verwijzigingen mogelijk.
|
|
|
$#
|
Verwijst naar het aantal gegeven parameters.
|
|
$*
|
Geeft als resultaat één string waarin alle parameters voorkomen, gescheiden door een delimiter gedefinieerd in de systeemvariabele IFS.
|
|
$@
|
Geeft als output alle parameters waarbij elke parameter als individuele string kan worden gebruikt.
|
|
$?
|
laatste return code
|
|
$$
|
PID van het script
|
|
shift through parameters
|
|
|
$2 -> $1, $3 -> $2,
|
de verwijzigingen 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 controleren met regex
|
|
|
=~
|
duidt op een regular expression
|
|
[[ …]]
|
nodig als er met regex wordt gewerkt
|
|
[[$1 =~ ^[a-zA-Z]+$ ]]
|
een voorbeeld
|
|
shell functions
|
|
|
function functienaam
|
|
|
{
|
|
|
command1
|
|
|
command2
|
|
|
command…
|
|
|
}
|
|
|
exit
|
|
|
Elk commando geeft een return code (exit-status) terug aan zijn host-process
|
|
|
Waarde tussen [0..255], 0 = Goed, [1..255] is fout-code.
|
|
|
exit
|
beëindigen van een shellscript, exit-status als argument
|
|
return
|
beëindigen van een functie, exit-status als argument
|
|
(( ))
|
|
|
wiskundige tests
|
|
|
(( %x < 10 ))
|
een voorbeeld functie
|
|
let
|
|
|
built-in shell functie
|
|
|
wiskundige berekeningen
|
|
|
let x="3+4"
|
Voorbeeld
|
|
-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
|
would be nice if this was in a real language klingon i would understand... but this???
Misspelled document title. It's Ubuntu Server, not Ububtu. (An "n" not a "b").
Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.