Uffff.... nu har jag ägnat ett par dar åt att konfa en kickstartfil för centos.
En liten labb vi har som ska installera ett system med vissa saker...
Här är lite användbara länkar som man inte får missa:
http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-grub-configfile.html
http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_3._Package_Selection
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Installation_Guide-en-US/s1-redhat-config-kickstart-prescript.html
http://www.centos.org/docs/5/html/5.2/Installation_Guide/s1-kickstart2-options.html
måndag 21 september 2009
tisdag 15 september 2009
SSH och lite säkerhet
Det kan ju vara bra att rigga upp lite skydd om man har ssh-server igång.
Fick ett par länkar som går igenom det:
http://blog.dathomir.se/2009/02/konfigurera-ssh-for-okad-sakerhet.html
och
http://blog.dathomir.se/2009/05/sa-har-skyddar-du-ssh-mot.html
Väldigt användbart.
Ett bra tips till en början kan vara att gå in i sshd_config och kryssa bort root-inlogg.
Fick ett par länkar som går igenom det:
http://blog.dathomir.se/2009/02/konfigurera-ssh-for-okad-sakerhet.html
och
http://blog.dathomir.se/2009/05/sa-har-skyddar-du-ssh-mot.html
Väldigt användbart.
Ett bra tips till en början kan vara att gå in i sshd_config och kryssa bort root-inlogg.
måndag 14 september 2009
C-program i Nano/terminalen
Satt och kollade igenom lite Harvard Computer Science från deras online lectures.
Rätt bra grejer, speciellt eftersom det fyller upp en del luckor jag känner att jag har, i grunderna och även sånt jag kunde för 10 år sen men nu förträngt eller glömt :)
så det var kul att se att han plötsligt börjar programmera i nano, och kompilera och exekvera i terminalen.
Vad jag minns har jag faktiskt aldrig gjort det på det sättet (antar att jag jobbade i MS-DOS...) men lite kom jag iaf ihåg, include stdio.h osv osv...
Så när man skriver ett C-program i nano så bör man antagligen (nu är jag ju färsk så ursäkta ev missar...) börja med att döpa filen lämpligen genom "nano filnamn.c" så att man inte klantar sig och glömmer .c efteråt. Kanske lite enklare att hålla reda på filerna sedan, speciellt om man kompilerar dem osv.
När man sedan skrivit sin kod, typ:
/* ett program i C, skrivet 2009 whatever */
#include < stdio.h >
int
main(int argc, char * argv[])
{
printf("hello, world\n");
}
[HÄR SLUTAR NANO]
Ok det där var alltså ett C-program i form av "hello world".
Observera backslash-n som byter till ny rad, så slipper man markören direkt efter.
Det man gör nu (om man har gcc eller cc som jag har på mac) är att man kompilerar filen.
Filen bör nu heta hello.c (kolla med ls) och sedan skriver man
cc hello.c
och då bör det dyka upp en kompilerad fil (om du inte klantat dig i koden och får fel) som heter
a.out
Testa med ls -l att den finns, och observera att den är +x för alla. (körbar).
Förslagsvis döper man nu om denna till "helloworld.pgm" eller lämpligt annat namn som inte är a.out.
Sedan är det bara att testa köra igång den genom att skriva
./helloworld.pgm
då ska man se en rad
hello world
och sedan kommer kommandoraden tillbaka på nästa rad (pga backslash-n).
Händer nåt annat eller ingenting så är det nåt som är fel i koden, kompileringen eller ditt kommando. Alternativt att du inte har rätt att exekvera filen.
Spännande, eller hur? Nu kan jag programmera i C igen :)
Rätt bra grejer, speciellt eftersom det fyller upp en del luckor jag känner att jag har, i grunderna och även sånt jag kunde för 10 år sen men nu förträngt eller glömt :)
så det var kul att se att han plötsligt börjar programmera i nano, och kompilera och exekvera i terminalen.
Vad jag minns har jag faktiskt aldrig gjort det på det sättet (antar att jag jobbade i MS-DOS...) men lite kom jag iaf ihåg, include stdio.h osv osv...
Så när man skriver ett C-program i nano så bör man antagligen (nu är jag ju färsk så ursäkta ev missar...) börja med att döpa filen lämpligen genom "nano filnamn.c" så att man inte klantar sig och glömmer .c efteråt. Kanske lite enklare att hålla reda på filerna sedan, speciellt om man kompilerar dem osv.
När man sedan skrivit sin kod, typ:
/* ett program i C, skrivet 2009 whatever */
#include < stdio.h >
int
main(int argc, char * argv[])
{
printf("hello, world\n");
}
[HÄR SLUTAR NANO]
Ok det där var alltså ett C-program i form av "hello world".
Observera backslash-n som byter till ny rad, så slipper man markören direkt efter.
Det man gör nu (om man har gcc eller cc som jag har på mac) är att man kompilerar filen.
Filen bör nu heta hello.c (kolla med ls) och sedan skriver man
cc hello.c
och då bör det dyka upp en kompilerad fil (om du inte klantat dig i koden och får fel) som heter
a.out
Testa med ls -l att den finns, och observera att den är +x för alla. (körbar).
Förslagsvis döper man nu om denna till "helloworld.pgm" eller lämpligt annat namn som inte är a.out.
Sedan är det bara att testa köra igång den genom att skriva
./helloworld.pgm
då ska man se en rad
hello world
och sedan kommer kommandoraden tillbaka på nästa rad (pga backslash-n).
Händer nåt annat eller ingenting så är det nåt som är fel i koden, kompileringen eller ditt kommando. Alternativt att du inte har rätt att exekvera filen.
Spännande, eller hur? Nu kan jag programmera i C igen :)
Etiketter:
c-language,
compile,
execute,
nano,
program
fredag 4 september 2009
Onsdag
UTSKRIFT
Windows
UNIX - koppla ihop ett program med en skrivare
utseendet är upp till programmet
lpr /lpd
nästan alla skrivare pratar "lpr"-protokollet
IPP - Internet Printing Protocol / CUPS supportar det
JetDirect (kan kallas AppSocket)
är ett "dumt" protokoll - ingen intelligens
3 sorters skrivare
radskrivare
sidskrivare
specialskrivare
- etiketter
- plottrar
- kartonger, osv
LPD
ofta ej standard
bra för specialskrivare
CUPS
modernt
sidskrivarorienterat
WYSIWYG
/etc/lpd.conf
BSD lpd (traditionell, stenålder)
lpd ng (modern, begränsat sidstöd)
vill man ha bannersida kan man ställa in det med lpd
SNMP
Simple Network Management Protocol
används för att övervaka och hantera datornätverk baserade på TCP/IP.
Kommandon, man -k lp
lpr
lprm
lpq
enscript
ps2ascii
pdf2ps
dvi2ps
dessa genererar dvi-filer
TeX
Latex
GÖRA "PDF-PRINTER" (cups-pdf)
su -
rpm -p cups-pdf
*installerar*
(yum -y install cups-pdf)
finns nu som en "idle" skrivare, åtkomlig över nätverket.
Windows
UNIX - koppla ihop ett program med en skrivare
utseendet är upp till programmet
lpr /lpd
nästan alla skrivare pratar "lpr"-protokollet
IPP - Internet Printing Protocol / CUPS supportar det
JetDirect (kan kallas AppSocket)
är ett "dumt" protokoll - ingen intelligens
3 sorters skrivare
radskrivare
sidskrivare
specialskrivare
- etiketter
- plottrar
- kartonger, osv
LPD
ofta ej standard
bra för specialskrivare
CUPS
modernt
sidskrivarorienterat
WYSIWYG
/etc/lpd.conf
BSD lpd (traditionell, stenålder)
lpd ng (modern, begränsat sidstöd)
vill man ha bannersida kan man ställa in det med lpd
SNMP
Simple Network Management Protocol
används för att övervaka och hantera datornätverk baserade på TCP/IP.
Kommandon, man -k lp
lpr
lprm
lpq
enscript
ps2ascii
pdf2ps
dvi2ps
dessa genererar dvi-filer
TeX
Latex
GÖRA "PDF-PRINTER" (cups-pdf)
su -
rpm -p cups-pdf
*installerar*
(yum -y install cups-pdf)
finns nu som en "idle" skrivare, åtkomlig över nätverket.
tisdag 1 september 2009
tisdag
Tisdag
PAKETHANTERING
innehåller filer
beroendeinformation
konfigurationsskript
databas över installerad mjukvara
det finns (i princip)
4 sorters pakethanterare
- enkel / ingen hantering : slackware
- källkodsbaserad - kompilerar själv : Gentoo
- rpm (redhat packet manager): Red Hat, CentOS, Suse, Fedora, Mandriva
- deb (dpkg): Debian, Ubuntu , Nexenta
RPM
rpm -i paket
i vilket paket finns faciliteten?
rpm --whatprovides facilitet
rpm -qa (listar alla paket på systemet)
rpmquery
rpm --verify paket
YUM (Yellowdog Updater Modified)
yum install program (till ex emacs, firefox osv, tittar i paketlistan)
i företagsmiljö får man INTE
- bygga kärnor själva
- lägga på paket som inte är officiellt supportade
DEBIAN
dpkg
dpkg -i paket (installera)
dpkg -L paket (ger alla filer som har med ett paket att göra)
dpkg -l (lista alla paket)
dpkg -S (search)
dselect
aptitude
apt-get install (vad som ska installeras)
synaptic
kynaptic
ALIEN
alien tar ett främmande paket och gör om det för det system man har
RPM - DEB , DEB - RPM
SOURCE CODE
packa upp med tar
./configure (klagar på vad man inte har, får ta ner paket)
make
make install
Mer FTP och filetransfers
WGET - wget laddar ner, vanligt förekommande.
CURL - laddar även upp
AXEL
LFTP - bör man titta på, "vanlig"
YAFC
ftp.apa.net/ls.txt (om den finns så innehåller det en lista)
exempel på nedladdad "kalkylatorprogram"
tar xzof bc-1.06.tar.gz (OBS o för rättigheter)
cd bc
./configure
make
make install
FILSYSTEM / MOUNT
mount (montera ett filsystem)
/etc/fstab (definitioner för montering)
/etc/mtab (systemfil "databas" över monterade filsystem)
mount /dev/sda5 /apa (standardsyntaxen för mount)
mount -o loop -t iso9660 foo.iso /apa
mount -o ro /apa (kollar i fstab efter apa)
FSTAB
# kommentar
/dev/cdrom/
typ (till ex iso9660)
mountpath /cdrom
LABEL=namn
GUID= (siffror) (64bitarstal?)
umount /dev/hda3
umount /mnt
VARNING
mount /dev/sda3 /foo
mount /dev/sda3 /foo/bar (monterat på sig själv!!! som raden ovan)
För att montera om ett filsystem som read only (fastlåst av program till ex)
mount -o remount -oro /mnt
testa unmount sedan
NFS
mac, BSD, unix
med NFS exporterar man ett filträd
(NFS-server finns i linuxkärnan)
mount -t nfs server1:/banan/apa /apa
man måste lista vilka som får ansluta och använda filsystemet
/etc/hosts.allow
/etc/hosts.deny
SMB (server message block) /CIFS (Common Internet File System)
Samba
smbclient //server1/foo -U user
smb username=namn //server1/foo /mnt
DISKETTER
/dev/fd0 hd1720
/dev/fd0
fdformat (för att formatera)
mtools (ett verktygspaket)
mdiv
mcopy
mmove
mtype
definiera drives
/etc/mtools
mdiv a:
PAKETHANTERING
innehåller filer
beroendeinformation
konfigurationsskript
databas över installerad mjukvara
det finns (i princip)
4 sorters pakethanterare
- enkel / ingen hantering : slackware
- källkodsbaserad - kompilerar själv : Gentoo
- rpm (redhat packet manager): Red Hat, CentOS, Suse, Fedora, Mandriva
- deb (dpkg): Debian, Ubuntu , Nexenta
RPM
rpm -i paket
i vilket paket finns faciliteten?
rpm --whatprovides facilitet
rpm -qa (listar alla paket på systemet)
rpmquery
rpm --verify paket
YUM (Yellowdog Updater Modified)
yum install program (till ex emacs, firefox osv, tittar i paketlistan)
i företagsmiljö får man INTE
- bygga kärnor själva
- lägga på paket som inte är officiellt supportade
DEBIAN
dpkg
dpkg -i paket (installera)
dpkg -L paket (ger alla filer som har med ett paket att göra)
dpkg -l (lista alla paket)
dpkg -S (search)
dselect
aptitude
apt-get install (vad som ska installeras)
synaptic
kynaptic
ALIEN
alien tar ett främmande paket och gör om det för det system man har
RPM - DEB , DEB - RPM
SOURCE CODE
packa upp med tar
./configure (klagar på vad man inte har, får ta ner paket)
make
make install
Mer FTP och filetransfers
WGET - wget laddar ner, vanligt förekommande.
CURL - laddar även upp
AXEL
LFTP - bör man titta på, "vanlig"
YAFC
ftp.apa.net/ls.txt (om den finns så innehåller det en lista)
exempel på nedladdad "kalkylatorprogram"
tar xzof bc-1.06.tar.gz (OBS o för rättigheter)
cd bc
./configure
make
make install
FILSYSTEM / MOUNT
mount (montera ett filsystem)
/etc/fstab (definitioner för montering)
/etc/mtab (systemfil "databas" över monterade filsystem)
mount /dev/sda5 /apa (standardsyntaxen för mount)
mount -o loop -t iso9660 foo.iso /apa
mount -o ro /apa (kollar i fstab efter apa)
FSTAB
# kommentar
/dev/cdrom/
typ (till ex iso9660)
mountpath /cdrom
LABEL=namn
GUID= (siffror) (64bitarstal?)
umount /dev/hda3
umount /mnt
VARNING
mount /dev/sda3 /foo
mount /dev/sda3 /foo/bar (monterat på sig själv!!! som raden ovan)
För att montera om ett filsystem som read only (fastlåst av program till ex)
mount -o remount -oro /mnt
testa unmount sedan
NFS
mac, BSD, unix
med NFS exporterar man ett filträd
(NFS-server finns i linuxkärnan)
mount -t nfs server1:/banan/apa /apa
man måste lista vilka som får ansluta och använda filsystemet
/etc/hosts.allow
/etc/hosts.deny
SMB (server message block) /CIFS (Common Internet File System)
Samba
smbclient //server1/foo -U user
smb username=namn //server1/foo /mnt
DISKETTER
/dev/fd0 hd1720
/dev/fd0
fdformat (för att formatera)
mtools (ett verktygspaket)
mdiv
mcopy
mmove
mtype
definiera drives
/etc/mtools
mdiv a:
måndag
SHELL SCRIPT
#!/bin/bash
om man bara har läsbehörighet
bash foo
bash < foo
cat foo | bash
Ett script:
du -sk *
ls -l
if
for
while
if ls apa
then
cp apa banan
else
touch banan/apa
fi
if ls apa;then; cp apa banan; else touch banan/apa; fi
ls apa && cp apa banan
&& - gör nästa om första gick bra
& - kör det första i bakgrunden
"testcase" - (man test /testcase)
if [-t apa]
-f vanlig fil
-d katalog
-x körbar fil
while ls -l apa
do
sleep 30
done
om den inte hittar filen så sleepar den
tar varje apa och utför något.
for apa in *
do
cp $apa /tmp
done
for i in /home/indata *
do
gzip -9 "$i" (kan vara bra med " " runt denna pga mellanslag)
if df | grep /utdata
then
mv "$i.gz" /utdata
else
mv "$i.gz" /home/klara
fi
done
foo.sh (kallar vi filen)
#!/bin/bash
foo.sh &
ls
foo.sh &
exit 0
exit 0 (extra exit om man har klantat sig)
$0 (ger programnamnet)
$1 (första parameter)
$2 (andra param)
$3 (tredje param)
$n (n:te param)
echo
echo apa
echo $apa
echo "$apa"
\n new line
\t
\l
\013
\x10
\\
\f form feed (matar nästa ark - till ex kassaterminaler och industri)
dc (desk calculator)
bc
$((57 - 31))
$((57 + $apa))
[ 57 - eq $apa ] (blir "sant" om apa är 57)
-eq - equal
-ne - not equal
-le - less than/equal
-ge - greater/equal
$apa = " 57 "
är inte samma sak som
§banan = "57"
pga mellanslagen, jämför strängar
PROCESS
kan allokera minne
allokera resurser (filer, sockets, semaforer mm)
en process har status
prioritet -nice
kill (skickar bara en signal till en process, dödar inte)
kill -9 proc-nr (signalhanteraren för signalen 9 ska "fint" döda proc, om den vill)
sighup ( -1 terminalen dör)
sigint (sluta vid tillfälle)
sigkill (-9 döda processen fint)
nice (defaultparameter -20)
nice -20 gzip (parametrar) (ger gzip lite mindre resurser än normalt)
root kan ge positiva nice-värden - processen tar mer resurser från andra.
ps, top, jobs (processer,"job control" titta på vad som körs)
ps -fe (ger så komplett lista som möjligt)
ps aux (komplett lista på BSD)
killall [signal] [namn]
screen
dtach (också liknande screen, lite annorlunda)
ctrl a 0...9
ctrl a d (detach)
ctrl a c (create)
ctrl a n (next)
ctrl a p (previous)
ctrl a k (kill)
KOMMUNIKATION - dator-till-dator
write user tty
writeall
IRC - Internet Relay Chat
/server (namn/nummer)
/nick (namn)
/join (#kanal)
MSN
Jabber
AIM
ICQ
Skype
Pidgin (fd GAIM)
KIT
Epost
Var finns inlådan? (inbox)
lokal hantering?
TEXTBASERADE
elm
pine
mitt
mail
thunderbird
evolution
Kmail
SMTP
Lokala alternativ:
- mbox
- mdir (en katalog per användare)
Nätverk:
- POP3
- IMAP
sendmail
postfix
SSH
Stark autentisering via certifikat
Krypterad överföring
både klient och server får mha certifikat verifiera att de är vem de utgör sig att vara
Server: /etc/ssh
innehåller servernycklar
sshd_config
ssh_host_key
.bsh kan behöva ses över vid konfigurering av uppkoppling
ssh -l user host
ssh user@host
tar cf- /foo/bar | ssh user@host tar xf-
scp -r /foo/bar user@host (då blir user@host ägare)
sftp
lftp
PreSharedKeys
görs med
ssh-keygen
ssh-keygen -t rsa1 (kompatibla med äldre system)
ssh-keygen -t rsa
ssh-keygen -t dsa
/ssh/authorized.keys
ssh-agent
man autentiserar mot agenten som sedan tar hand om kommunikationen m klient.
RSH - RemoteShell
kan finnas i Windows
program, login, VPN mm
Telnet
fjärrsession
FTP
filöverföring
TFTP (+BootP)
DHCP
PuTTy
#!/bin/bash
om man bara har läsbehörighet
bash foo
bash < foo
cat foo | bash
Ett script:
du -sk *
ls -l
if
for
while
if ls apa
then
cp apa banan
else
touch banan/apa
fi
if ls apa;then; cp apa banan; else touch banan/apa; fi
ls apa && cp apa banan
&& - gör nästa om första gick bra
& - kör det första i bakgrunden
"testcase" - (man test /testcase)
if [-t apa]
-f vanlig fil
-d katalog
-x körbar fil
while ls -l apa
do
sleep 30
done
om den inte hittar filen så sleepar den
tar varje apa och utför något.
for apa in *
do
cp $apa /tmp
done
for i in /home/indata *
do
gzip -9 "$i" (kan vara bra med " " runt denna pga mellanslag)
if df | grep /utdata
then
mv "$i.gz" /utdata
else
mv "$i.gz" /home/klara
fi
done
foo.sh (kallar vi filen)
#!/bin/bash
foo.sh &
ls
foo.sh &
exit 0
exit 0 (extra exit om man har klantat sig)
$0 (ger programnamnet)
$1 (första parameter)
$2 (andra param)
$3 (tredje param)
$n (n:te param)
echo
echo apa
echo $apa
echo "$apa"
\n new line
\t
\l
\013
\x10
\\
\f form feed (matar nästa ark - till ex kassaterminaler och industri)
dc (desk calculator)
bc
$((57 - 31))
$((57 + $apa))
[ 57 - eq $apa ] (blir "sant" om apa är 57)
-eq - equal
-ne - not equal
-le - less than/equal
-ge - greater/equal
$apa = " 57 "
är inte samma sak som
§banan = "57"
pga mellanslagen, jämför strängar
PROCESS
kan allokera minne
allokera resurser (filer, sockets, semaforer mm)
en process har status
prioritet -nice
kill (skickar bara en signal till en process, dödar inte)
kill -9 proc-nr (signalhanteraren för signalen 9 ska "fint" döda proc, om den vill)
sighup ( -1 terminalen dör)
sigint (sluta vid tillfälle)
sigkill (-9 döda processen fint)
nice (defaultparameter -20)
nice -20 gzip (parametrar) (ger gzip lite mindre resurser än normalt)
root kan ge positiva nice-värden - processen tar mer resurser från andra.
ps, top, jobs (processer,"job control" titta på vad som körs)
ps -fe (ger så komplett lista som möjligt)
ps aux (komplett lista på BSD)
killall [signal] [namn]
screen
dtach (också liknande screen, lite annorlunda)
ctrl a 0...9
ctrl a d (detach)
ctrl a c (create)
ctrl a n (next)
ctrl a p (previous)
ctrl a k (kill)
KOMMUNIKATION - dator-till-dator
write user tty
writeall
IRC - Internet Relay Chat
/server (namn/nummer)
/nick (namn)
/join (#kanal)
MSN
Jabber
AIM
ICQ
Skype
Pidgin (fd GAIM)
KIT
Epost
Var finns inlådan? (inbox)
lokal hantering?
TEXTBASERADE
elm
pine
mitt
thunderbird
evolution
Kmail
SMTP
Lokala alternativ:
- mbox
- mdir (en katalog per användare)
Nätverk:
- POP3
- IMAP
sendmail
postfix
SSH
Stark autentisering via certifikat
Krypterad överföring
både klient och server får mha certifikat verifiera att de är vem de utgör sig att vara
Server: /etc/ssh
innehåller servernycklar
sshd_config
ssh_host_key
.bsh kan behöva ses över vid konfigurering av uppkoppling
ssh -l user host
ssh user@host
tar cf- /foo/bar | ssh user@host tar xf-
scp -r /foo/bar user@host (då blir user@host ägare)
sftp
lftp
PreSharedKeys
görs med
ssh-keygen
ssh-keygen -t rsa1 (kompatibla med äldre system)
ssh-keygen -t rsa
ssh-keygen -t dsa
/ssh/authorized.keys
ssh-agent
man autentiserar mot agenten som sedan tar hand om kommunikationen m klient.
RSH - RemoteShell
kan finnas i Windows
program, login, VPN mm
Telnet
fjärrsession
FTP
filöverföring
TFTP (+BootP)
DHCP
PuTTy
Prenumerera på:
Inlägg (Atom)