Tahák na CVS

Článků o CVS bylo na českém internetu napsané dostatečné množství, takže tady nečekejte nějaké sáhodlouhé pojednání nebo manuál k CVS. Je to jen souhrn základních příkazů, které jsou potřeba pro požívání CVS.

Jak se přihlásit k mému CVS?

linux, bash:

cvs -d :pserver:cvs@burdazd.sh.cvut.cz:/home/cvsroot login

nebo


export CVSROOT=:pserver:cvs@burdazd.sh.cvut.cz:/home/cvsroot
cvs login

Heslo není takže jen odbouchněte entrem.

Základní příkazy

repository

cvs -d/home/tsunami/cvsroot init

CVSROOT

Proměnnou CVSROOT nastavuju ve svém ~/.bash_profile pomocí příkazu export CVSROOT=/home/tsunami/cvsroot

import modulu

cvs -d/home/tsunami/cvsroot import -m"Initial import." test TSUNAMI INITIAL

  • -d/home/tsunami/cvsroot
  • lze vynechat, když máme nastavenou proměnnou CVSROOT
  • -m
  • log message
  • test
  • jméno modulu, který se vytvoří
  • TSUNAMI
  • značka výrobce 🙂
  • INITIAL
  • značka verze

získání z repository – checkout

cvs co test

  • co
  • také checkout, slouží k vydolování věcí z repository
  • test
  • jméno modulu, jehož poslední verzi chceme získat z repository

další volby

  • -A
  • převod souborů na jinou vývojovou větev, bez zadání -r… převede na aktuální větev(HEAD)
  • -P
  • nevytváří prázdné adresáře
  • -r
  • volí větev, bez zadání je zvolena hlavní(HEAD)
  • -D
  • volí datum, bez zadání se získá nejnovější verze

    datum se zadává třeba takhle: -D"2003-04-30 18:30:00"

  • -z3
  • komprese

uložení do repository – commit

cvs ci -m"Komentar k upravam"

  • ci
  • také commit, aktualizuje soubory v repository
  • -m
  • přidá komentář, když se nezadá, tak se spustí editor

zjištění změn v repository – update

cvs up test

  • up
  • take update, zjistí změny a zaktualizuje soubory

další volby

  • -APrD
  • stejné vlastnosti jako u checkout
  • -d
  • přinutí update aby akceptovalo i nové adresáře

status

cvs status test

další volby

  • -v
  • Vypíše informace o značkách a větvích.

Značka (tag)

cvs -f tag NAZEV_ZNACKY 'jmeno modulu_nebo_souboru'

Zámek

Zamknutí:
cvs -f admin -l 'soubor'

Odemknutí:
cvs -f admin -u 'soubor'

OpenSSH

Krátký návod na SCP-only shell, používání klíčů a ověřování proti MySQL databázi

Používání klíčů pro přilášení k serveru

V případech, kdy není možné(skript, jsme líní:-) zadávat heslo pro přihlášení k SSH serveru, je na řadě použití klíčů.

Klíč je public(veřejný) a private(soukromý), private key je potřeba chrácnit jako oko v hlavě! Pro vygenerování klíčů se použije příkaz
ssh-keygen -t dsa
(preferuji šifru DSA, můžete ještě zvolit RSA, pro více informací man ssh-keygen) po spuštění nás program vyzve k zadání souboru kam má vygenerovaný klíč umístit, doporučuji použít předvolenou (~/.ssh/id_dsa v případě. že zvolíme šifru DSA), dále nás vyzve k zadání hesla, to necháme prázdné(ENTER). Po ukončení programu máme v adresáři ~/.ssh/ dva nové soubory: id_dsa a id_dsa.pub, id_dsa je privátní klíč a id_dsa.pub (pro ty pomalejší 🙂 veřejný klíč.
Veřejný klíč si nakopírujeme na server například pomocí programu scp:
scp ~/.ssh/id_dsa.pub server.domena:~/
potom se na server přihlásíme přez ssh(ještě pořád normálně zadáváme heslo), tam provedem příkazy

cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
rm ~/id_dsa.pub


a od teď už nemusíme zadávat heslo při přihlašování na server pomocí programu ssh ani při používání scp.

Použití scp

scp [volby] co_kopiruju kam_kopiruju

kde zdroj(co_kopiruju) i cíl(kam_kopiruju) má formát:

[[username@]pocitac:]soubor

takže když chci nahrát ze svého počítače soubor na jinej do sveho home(~/), tak to bude takhle nějak:

scp soubor.tar.bz2 tsunami@server.cz:~/

kopírování ze serveru na můj počítač(zasse do meho home):

scp tsunami@jinejserver.cz:~/nejakejsoubor.jpg ~/

vlastně to je jako normální cp, ale přidáváme tam jméno uživatele apočítače. Uživatelské jméno nemusíme zadávat v případě, že je jak na zdrojovém tak i cílovým počítači stejné. (takže bych tam vynechal tsunami@ a napsal jen server.cz:~/)

volby scp

  • -r – rekurzivně kopíruje adresáře
  • -v – program je ukecanější
  • -q – neukazuje řádek se procentuelním vyjádřením části přeneseného souboru (progress meter)
  • -P – port
  • -4 – použije pouze IPv4
  • -6 – použije pouze IPv6
  • další volby jsou popsané v dokumentaci k scp, skoro jsem je nepoužil tak je sem ani neuvádím

scponly shell

Protože nemám rád klasické ftp na serveru a nasadit ssl-ftp si netroufam protoče by s tím klinti mohli mít nemalé problémy, používám scponly shell pro bezpečný přenos souborů na server. Scponly shell umožňuje také provoz v chrootu, takže se uživatel netoulá po systému.

Instalace

Scponly roste na adrese http://www.sublimation.org/scponly/. Zkompilovat ze zdrojových kódů snad zvládnete, pokud ne, tak si najděte balíček přímo pro svůj systém. Pro mě je důležité, že scponly je i v debianu a nemusím nic kompilovat, stačí jen apt-get install scponly. Uživateli kterému chcete dovolit pouze scponly, nastavíte jako shell /usr/bin/scponly. Pokud chcete aby byl uživatel pži používání uzavřen v chrootu, nastavte mu jako shell /usr/sbin/scponlyc. Binarka scponlyc ma nastaveny setuid bit. Oba programy (/usr/bin/scponly a /usr/sbin.scponlyc) musí být zapsaný v souboru /etc/shells.

Ověřování uživatelů proti databázi MySQL

Na serveru si tržím o uživatelích přímo v systému minimum informací. Většinu věcí mám v MySQL. Také hesla jednotlivých uživatelů mám v databázi.

soubor /etc/pam.d/ssh jsem upravil do teto podoby (vím, není to dokonalé, ale je to funkční…):

auth       required     pam_nologin.so
auth       required     pam_env.so
auth       sufficient   pam_unix.so likeauth nullok shadow
auth       sufficient   pam_mysql.so user=postfix passwd=postfix \
host=localhost db=postfix table=domain usercolumn=domena \
passwdcolumn=passwd crypt=2 where=aktivni=1
auth       required     pam_deny.so

account    sufficient   pam_unix.so
account    sufficient   pam_mysql.so user=postfix passwd=postfix \
host=localhost db=postfix table=domain usercolumn=domena \
passwdcolumn=passwd crypt=2 where=aktivni=1
account    required     pam_deny.so

password   sufficient   pam_unix.so nullok use_authtok shadow md5
password   sufficient   pam_mysql.so use_authok user=postfix \
passwd=postfix host=localhost db=postfix table=domain usercolumn=domena \
passwdcolumn=passwd crypt=2 where=aktivni=1
password   required     pam_deny.so

session    required     pam_limits.so
session    required     pam_unix.so
session    optional     pam_mysql.so use_authok user=postfix \
passwd=postfix host=localhost db=postfix table=domain usercolumn=domena \
passwdcolumn=passwd crypt=2 where=aktivni=1

Řádky jsem zalomil kvůli čitelnosti, v konfiguračním souboru je nezalamujte!

Screenshot

Nerad típu obrazovky gimpem, tak jsem si napsal jednoduchý skriptík, který típne obrazovku a uloží do adresáře ~/screenshot

#!/bin/bash
#
#   $Id: screnshot,v 1.1 2004/02/22 19:57:41 tsunami Exp $
#   zdenda@zdenda.com
#

## kam se budou ukladat screenshoty
DIR="$HOME/screenshot"  

## prefix
NAME="scr_"

## typ a zaroven pripona souboru
TYPE="png"

#############################################################################

[ -d "$DIR" ] || echo "Vytvarim adresar $DIR pro snimky." && mkdir -p "$DIR"
[ -d "$DIR" ] && import -window root "${DIR}/${NAME}`date +%s`.${TYPE}" && exit 0
exit 1

Šifrovaný diskový oddíl v linuxu

Tak jsem se rozhodl, že si rozjedu šifrovaný diskový oddíl na svém harddisku. Mám tu pár set mega dat, které bych nerad ukazoval na veřejnosti (žádné nelegální věci, jen nějaké firemní dokumenty a podobně).

Inspiroval jsem se článkem na www.abclinuxu.cz kde autor použil CryptoAPI. Já jsem si vybral Loop-AES, protože loop-aes patch pro util-linux verze 2.12pre, takže nemusím používat nějakou prehistorickou verzi (používám jádro 2.4.22, které už má CryptoAPI implementované, ale nějak se mi líbí loop-aes, hlavně kvůli té verzi util-linux).

Začínáme…

Jako první si stáhněte z adresy http://loop-aes.sourceforge.net/ soubor loop-AES-latest.tar.bz2 a z adresy ftp://ftp.kernel.org/pub/linux/utils/util-linux/ soubor util-linux-2.12pre.tar.bz2. Teď máme vše co budeme potřebovat stažené a můžeme zažít s instalací.

Instalace

Musíte překompilovat jádro s podporou modulů a vypnout modul loop:

CONFIG_MODULES=y
CONFIG_BLK_DEV_LOOP=n

volba CONFIG_KMOD=y se doporučuje ale není nezbytně nutná.
(CONFIG_BLK_DEV_LOOP=y nebo CONFIG_BLK_DEV_LOOP=m nesmí být, protože by se pak nedalo používat šifrování.)

Loop-AES se překládá samostatně, takže při změně Loop-AES se nemusí rekompilovat jádro.
Zdrojové kódy Loop-AES si rozbalíme, přesuneme se do adresáře a spustíme make:

tar -cjf loop-AES-latest.tar.bz2
cd loop-AES-v1.7e
make

tím si vyrobíme modul loop.o, který si nakopírujeme do adresáře s modulama a spustíme depomod

cp loop.o /lib/modules/`uname -r`/kernel/
depmod -a

Instalace util-linux se dela presne podle tohoto postupu:
(předpokládám, že máte adresář loop-AES-v1.7e ve stejném adresáři jako zdrojové kódy k util-linux)

bzip2 -d -c util-linux-2.12pre.tar.bz2 | tar xvf -
cd util-linux-2.12pre
patch -p1 <../loop-AES-v1.7e/util-linux-2.12pre.diff
CFLAGS=-O2 ./configure
make SUBDIRS="lib mount"
cd mount
install -m 4755 -o root mount umount /bin
install -m 755 losetup swapon /sbin
rm -f /sbin/swapoff && ( cd /sbin && ln -s swapon swapoff )
rm -f /usr/share/man/man8/{mount,umount,losetup,swapon,swapoff}.8.gz
install -m 644 mount.8 umount.8 losetup.8 /usr/share/man/man8
install -m 644 swapon.8 swapoff.8 /usr/share/man/man8
rm -f /usr/share/man/man5/fstab.5.gz
install -m 644 fstab.5 /usr/share/man/man5
cd ..

Pro vyzkoušení funkčnosti spustíme přikaz make tests v adresáři loop-AES-v1.7e, když na konci vypadne *** Test results ok *** tak je vše v naprostém pořádku a můžem pokračovat dál.

Loop-AES + GnuPG

Protože používám GnuPG tak jsem se rozhodl pro zkombinování Loop-AES a s gpg klíčem. Postup je pěkně popsaný v README k Loop-AES (to co jsem vlastně doteď napsal je jen výtah a počeštění z README), taky se mi moc nechtělo zadávat minimálně 20ti místné heslo.

Vytvoření klíče pro šifrování:

head -c 45 /dev/random | uuencode -m - | head -n 2 | tail -n 1 \
| gpg -e -a -r "zdenda@zdenda.com" > /namountovany_usb_flash_disk/keyfile.gpg

Místo zdenda@zdenda.com si tam napište svůj identifikátor klíče (hlavně se nespleťte v gpg klíči!). /namountovany_usb_flash_disk/ je adresář s flash diskem, je doporučené skladovat keyfile.gpg mimo počítač se zašifrovaným diskem.
Do /etc/fstab přidejte záznam(vše na jednom řádku):


/dev/hda4 /mnt/crypt ext3 user,defaults,noauto,loop=/dev/loop3,encryption=AES128,\
gpgkey=/namountovany_usb_flash_disk/keyfile.gpg,gpghome=/home/tsunami/.gnupg/ 0 0

Cesty si změnte podle svého.
/home/tsunami/.gnupg/ je adresář s gpg klíčema.
/dev/hda4 je prázdný diskový oddíl, který budeme šifrovat.

Vytvoření souborového systému na šifrovaném oddílu:

losetup -F /dev/loop3
mkfs -t ext3 /dev/loop3
losetup -d /dev/loop3
mkdir /mnt/crypt

Teď už můžete přimountovat šifrovaný diskový oddíl:
mount /mnt/crypt

Loop-AES + normální heslo

Heslo musí být miniálně 20 znaků (kdo si ho má pamatovat? 🙂 Ať žije paranoia.

losetup -e AES128 -T /dev/loop0 /dev/hda4
mkfs -t ext3 /dev/loop0
losetup -d /dev/loop0
mkdir /mnt/crypt

do /etc/fstab přidejte:

/dev/hda4 /mnt/crypt ext3 defaults,user,noauto,loop=/dev/loop0,encryption=AES128 0 0

Šifrovaný “virtuální” disk

Virtuální disk vytvoříme příkazem
dd if=/dev/zero of=mujsifrovanejdisk bs=1M count=50
kde mujsifrovanejdisk je nazev souboru, který bude vytvořený a count=50 znamená, že bude mít 50MiB. zašifrování provádíme stejně jako v případě normální partition, ale do vsech příkazů pířeme cestu k souboru… (v mém případě místo /dev/hda4)

Šifrované CD

Zatím jsem ho neřešil. Teoreticky by to mělo být možné. Zřejmě by šlo vyrobit zašifrovaný “virtuální” disk (soubor) a ten přímo vypálit na CD. Běžně tak vyrábím CD s FS ext2.

Klávesové zkratky programu screen

Výtah nejzajímavějších klávesových zkratek programu screen z jeho manuálové stránky.

screen [volby] [program [volby programu]]

Parametry příkazového řádku při spouštění:

  • -S nazev - vytvoří novou session s danám nazvem
  • -x nazev - připojí se na danou session, lze použít némi zadané jméno nebo třeba pid session(vše je vidět připoužití -list)
  • -list - vypíše všechny session

Ovládání screenu:
(C-a X znamena Ctrl + a a pak X)

  • C-a ? - nápověda
  • C-a c - nové okno
  • C-a n - přepnout na další okno
  • C-a p - přepnout na předchozí okno
  • C-a X - přepnutí na okno s číslem X
  • C-a C-a - přepnout na poslední použité okno
  • C-a " - vypíše všechny okna v aktuální session a nechá některé z nich zvolit jako aktuální
  • C-a F - přizpůsobení velikosti "screen" okna skutecne velikosti okna terminálu
  • C-a d - "odkopnutí" screenu na pozadí (detach)
  • C-a x - zamknutí screenu
  • C-a * - zobrazí vsechny terminály, kde je pouzíván aktuální screen
  • C-a Z - provede reset konzole v aktuálním okně
  • C-a l - refresh zobrazení
  • C-a \ - konec aktuální session, zeptá se jestli chceme opravdu zabít všechny okna
  • C-a [ - kopírování do schránky
  • C-a ] - vložení ze schránky

Jak na GnuPG

Tato stánka není oficiální dokumentací ani manuálovou stránkou, je to jen stručný popis generování klíče a zacházení s ním…

Vygenerování klíče

Klíč pro GnuPG se generuje pomocí příkazu

gpg --gen-key

Po spuštění jsem vybral volbu (1) DSA a ElGamal (implicitní) dále jsem zvolil délku klíče 1024 bajtů (myslím, že bohatě stačí…) Poté se zadá Jméno, email případně nějaká poznámka úplně na konec se zadává heslo 2x za sebou. Nakonec proběhne vygenerování klíčů (private, public). Klíče si vypíšeme příkazem
gpg --list-keys
Přidávání(import) dalších veřejných klíčů (většinou je dostaneme jako textový soubor) se provádí pomocí příkazu
gpg --import file
Mazání klíče:
gpg --delete-key 57548DCD
editace klíče:
gpg --edit-key 57548DCD

Podepisování a ověřování

Podepisování souborů

Na hodně ftp serverech nacházíme kromě vlastního souboru jěště soubor se stejným jménem a příponou .asc, je to podpis. Ověření probíhá pomocí příkazu:

gpg --verify nejakej_soubor-i386.tgz.asc nejakej_soubor-i386.tgz.asc

Podepisování souborů:
gpg -s soubor

vytvoří podepsaný zkomprimovaný soubor s koncovkou .pgp který obsahuje i originální data
gpg --clearsign soubor

vytvoří podepsaný soubor s koncovkou .asc, která obsahuje i originální data a je v kódivání 7 bitové ASCI, lze poslat emailem
gpg -b soubor

vytvoří soubor s příponou .sig, který obsahuje pouze bínární formu podpisu
gpg -b --armor soubor

vytvoří soubor s koncovkou .asc, který obsahuje pouze ASCII podobu podpisu

Podepisování klíčů

Klíče se podepisují pomocí příkazu
gpg --lsign-key identifikator_uzivatele
takze pro podepsání mého (importovaného) klíče je třeba udělat toto:
gpg --lsign-key zdenda@zdenda.com

Šifrování a dešifrování

Šifrování:

gpg -er 0161626E filename
zašifruje soubor veřejným klíčem s ID 0161626E
gpg -esr 0161626E filename
vytvoří soubor šifrovaný veřejným klíčem daného ID a podepsaný vaším vlastním privátním klíčem

Dešifrování:

Pro dešifrování je tento příkaz:

gpg -o vystupni_soubor -d zasiforvany_soubor.gpg

Když se vynechá parametr -o vystupni_soubor, tak se výsledek vypíše na obrazovku.

Podepisování emailů

pine

Pro nainstalování podpory GnuPG do pine je potřeba spustit program(jen jednou!):
pinegpg-install
potom se při odesílání emailu objeví hláška:

Send message (unfiltered)?

pomocí CTRL-p nebo CTRL-n si přepneme na požadovanou akci, toto jsou možnosti:

  • Send message (unfiltered)?
    Odeslání normálního, nepodepsaného a nešifrovaného emailu.
  • Send message (filtered thru "gpg-sign")?
    Odeslání podepsaného emailu.
  • Send message (filtered thru "gpg-encrypt")?
    Odeslání zašifrovaného emailu.
  • Send message (filtered thru "gpg-sign+encrypt")?
    Odeslání zašifrovaného a podepsaného emailu.

Když chceme poslat zašifrovaný email, tak musíme mít pro adresáta naimportovaný jeho veřejný klíč (jinak není pomocí čeho šifrovat…).

mutt

nastavení gpg v muttu je trošku složitější než je to v pine (ale ne o moc 🙂
V první řadě budete potřebovat soubor .gpg.rc, ten si uložíte do svého domácího adresáře (~/.gpg.rc), do svého ~/.muttrc si připíšete řádky:

source ~/.gpg.rc
set fcc_clear
set forward_decrypt
unset pipe_decode
set pgp_ignore_subkeys # On OpenPGP keys only show the main key, not the sub.
unset pgp_autosign # pgp sign every outgoing mail. (send-hook?)
unset pgp_autoencrypt # pgp encrypt every outgoing mail. (send-hook?)
set pgp_create_traditional=ask-no # Use old-style PGP? (don't do it!)
set pgp_replyencrypt # Encrypt replies on encrypted mail
set pgp_replysign # Sign replies on signed mail
set pgp_replysignencrypted # Sign replies on encrypted mail
unset pgp_retainable_sigs # disable retainable signatures.
set pgp_verify_sig=yes # ask me whether I want to check a pgp signature
set pgp_timeout=7200 # forget PGP passphrase after 7200 seconds (=2 hours)
set pgp_strict_enc # allway use QP enc. with PGP.
unset pgp_long_ids # display 64bit PGP key-ids (don't change this!)
set pgp_show_unusable # show unusable PGP keys in menu

## napiste si tam mosto 0161626E id klice kterym chcete podepisovat
set pgp_sign_as=0x0161626E

# %n = number %k = key id %K = key id of the principal key
# %u = user id %a = algorithm %A = algorithm of the princ. key
# %l = length %L = length of the princ. key
# %f = flags %F = flags of the princ. key
# %c = capabilities %C = capabilities of the princ. key
# %t = trust/validity of the key-uid association
set pgp_entry_format="%4n %t%f %[%y/%m/%d] %4l/0x%k %-4a %2c %u"
set pgp_sort_keys=trust

# nesifrovat
send-hook . unset pgp_autoencrypt
# podepsat
send-hook . set pgp_autosign
# prerusit jestli neni subjekt
send-hook . set abort_nosubject=ask-yes

# Now the exceptions:
# Majordomo doesn't care about signatures or subject lines
send-hook Majordomo@ unset pgp_autosign
send-hook Majordomo@ set abort_nosubject=no
# Send encrypted to these people
#send-hook tim@cyberelk\.demon\.co\.uk set pgp_autoencrypt
#send-hook twaugh@redhat.com set pgp_autoencrypt
#send-hook bandregg@redhat\.com set pgp_autoencrypt
# Use the 'twaugh@redhat.com' key for this address
#pgp-hook tim@cyberelk\.demon\.co\.uk 44E96F28


Po napsání emailu múžete v nabídce před odesláním zvolit požadovanou akci gpg, menu se vyvolá stisknutím klávesy p.
Možnosti: (š)ifrovat, (p)odepsat, podepsat (j)ako, (o)bojí, či (n)ic?

V případě, že se zobrazí nezkontrolovaný podpis stiskněte klávesu ESC a pak P (SHIFT-p).
Tohle můžete přidat do ~/.procmailrc, upraví to hlavičku emailu která není úplně korektní.

# Add a "Content-Type: application/pgp" header so Mutt will know the
# mail is encrypted.
:0 fBw
* ^-----BEGIN PGP MESSAGE-----
* !Content-type: multipart
| formail -i "Content-Type: application/pgp; format=text; x-action=encryptsign"

# Add a "Content-Type: application/pgp" header so Mutt will know the
# mail is signed.
:0 fBw
* ^-----BEGIN PGP SIGNED MESSAGE-----
* !Content-type: multipart
| formail -i "Content-Type: application/pgp; format=text; x-action=sign"

Můj .muttrc.

Posílání a čtení emailů telnetem.

Při nastavování poštovních služeb na serveru se hodí ručně ověřit funkčnost, jednoduchý postup který je zde uveden často plně postačuje.

telnet service.sh.cvut.cz smtp

Server odpoví:

Trying 147.32.127.214...
Connected to service.sh.cvut.cz.
Escape character is '^]'.
220 service.sh.cvut.cz Silicon Hill 1st MX

Pozdravíme 🙂

EHLO service.sh.cvut.cz

Server nám odpoví

250-service.sh.cvut.cz
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250 8BITMIME

Začneme se psaním emailu, nejdřívod koho:

MAIL From: emailova@adresa.tld

a server odpoví

250 Ok

Příjemce:

RCPT To: emailova@adresa.tld

Server odpovi:

250 Ok

Chceme psát zprávu

DATA

A server vrátí:

354 End data with <CR><LF>.<CR><LF>

no a ted můžem psát zprávu. Zpráva se odesílá napsáním tečky na samotném řádku.

Ahoj jak se mas?
Tohle je email poslany z telnetu.
.

Pokud se podařilo zprávu zpracovat, vrátí server něco jako:

250 Ok: queued as 1294A1B8BFD

Takže můžeme skončit…

QUIT

Položky hlavičky

From:
Adresa odesilatele
To:
Adresa příjemce
Cc:
Adresa, kam se zasílá kopie, lze napsat více adres oddělených čárkou.
Bcc:
Skrytá kopie, stejné jako Cc:, ale není vidět v hlavičce emailu po doručení.
Reply-To:
Adresa na kterou má jít odpověď na tento email.
Subject:
jasny, ne?
Sender:
Určuje odesilatele zprávy pokud je jiný než From:

Čtení emailů z POP3 přez telnet

Čtení emailů z telnetu sice moc často nevyužijete, ale když je nějaký problém (veliká zpráva v mailboxu a Vy na modemu…) tak pomůže.

Základní příkazy

  • USER xxx – zvolíme mailbox uživatele xxx
  • PASS xxx – zadáme heslo pro přístup k mailboxu
  • LIST – vypíšeme zprávy
  • RETR x – vypíše zprávy číslo x nakonzoli
  • TOP X Y – vypíše y řádků ze zprávy číslo x na konzoli
  • DELE x – označí zprávu číslo x jako smazanou
  • RSET – odznačí všechny zprávy označené jako smazané
  • QUIT – smaže všechny označené zprávy a skončí

$ telnet tsunami.sh.cvut.cz pop3
Trying 147.32.119.186...
Connected to tsunami.sh.cvut.cz.
Escape character is '^]'.
+OK Hello there.
USER tsunami
+OK Password required.
PASS heslo
+OK logged in.
LIST
+OK POP3 clients that break here, they violate STD53.
1 2456
2 3573
3 3241
4 1298
.
RETR 1
+OK 2456 octets follow.
Return-Path: ...
.....
.....
vypise se emailova zprava
.
QUIT

Maturitní práce 4.E 2001/02 SPŠE Pardubice

Podařilo se mi posbírat většinu dokumentace k maturitním pracím našeho ročníku. Když se tak do nich koukám, tak se divím jak jsme mohli dělat takový zvěrstva 🙂

Pavel Bartoš
Pavel Berka – RLC měřič

Jan Bílek – nabíječka Pb aku
Zdeněk Burda – střídavý zdroj 0-255V
Jiří Culek – NF zesilovač 2x20W
Roman Doleček – regulovatelný zdroj

Jan Friedl – hodiny s budíkem
Matěj Gol – nabíječka NiCd aku
Jindřich Gult – digitální teploměr
Radovan Hock – digitální teploměr

Tomáš Hyksa – NF zesilovač
Adam Jančík – NF zesilovač s kanálem pro subwoofer
Aleš Jiráček – automat. nabíječ NiCd aku
Tomáš Jireček – NF zesilovač

Pavel Kopecký – nabíječka Pb aku
Kramář Jan
Krupka Jiří
Radek Laštovica – nabíječka Pb aku s konstantním U
Zbyněk Lefler – ekvalizer

Petr Moštěk – NF zesilovač 2x30W
Tomáš Mrtka – termostat
Jaromír Nedobitý nabíječka NiCd
Jan Pokálený – NF zesilovač

Pavel Rozlívka – nabíječka Pb aku
Petr Šimek – Poplašné zařízení
Petr Sloupenský – NF zesilovač
Ondřej Urbánek – nabíječka Pb aku

Libor Vojáček – nabíječka Pb aku

.tgz je archív souborů zabalený TARem a pak GZIPem, v UNIXových systémech rozbalíte pomocí

tar -xzf archiv.tgz

Lirc – Dálkové ovládání k počítači

Vzhledem k tomu, že mě nebaví tahat si s sebou po pokoji klávenici kvůli ovládání xmms a hlasitosti přehrávání,
jsem si pořídil dálkové ovládání. Mám ho nastavené tak, že funguje hned po prvním nalogování na mašinu.
Konfigurák mám nastaven tak, aby se DO dalo použít i na ovládání mplayeru (pauza, posun ve filmu,
vypnutí mplayeru) a vypnutí PC (to se docela hodilo v době, kdy jsem měl počítač tak hlasitej,
že vysavač v koutku jen tiše záviděl a večer se mi již nechtělo vstávat z postele abych ho vypnul).

Lirc získáte na stránce www.lirc.org, kde je také dokumentace (v angličtině)

Jako přijímač dálkového ovládání jsem použil toto zapojení, které je připojené na sériový port.

Schema IR prijimace podle www.lirc.org

Schema IR prijimace podle www.lirc.org

Obvod SFH506 se dělá ve dvou verzích a mám dojem že je jedno kterou použijete, lze také použít obvod TSOP1738, TSOP1838 nebo SFH5110. Obvod 78L05 je stabilizátor napětí pro proud do 100mA (zapojení: pohled ze strany nožiček, ploška nahoru, zleva je OUT, GND a IN). Kondenzátor 4,7uF je obyžejný elektrolitický kondík a je připojenej minusem a GND. Diodu múžete pouřít jakoukoliv.
Zapojení potřebných vývodý na konektoru typu CANNON 25M neboCANNON 9M

název 	25pin 	9pin
DCD 	8 	1
RTS 	4 	7
GND 	7 	5

Stažený soubor lirc-0.x.y.tar.bz2 (x, y podle verze) nakopírujte například do adresáře /usr/src a rozbalte příkazem tar -xvjf lirc-0.x.y.tar.bz2

příkazem ./configure v adresáři, který vznikl rozbalením archivu, spusťte konfiguraci. Zde je nutné nastavit port, na kterém je zapojen přijímač a potom je třeba zvolit v základním menu volby Save configuration & run configure. Po proběhnutí konfiguračního skriptu zadejte příkazy (k make install potřebujeme práva roota)


make
make install

– lirc máme nainstalované.
Pro správnou funkci je potřeba natáhnout modul lirc_serial:


modprobe lirc_serial

a spusti daemona


lircd

Používaný seriový port nesmí být požíván ničím jiným než lircd.
Test DO provedem příkazem mode2, který zobrazuje data přijímaní z DO na konzoli.
Konfigurace dálkového ovládání se provádí příkazem irrecord:

irrecord lircd.conf

program irrecord provede přiřazení zadávaných názvů k tlačítkům DO. Vzniklý soubor lircd.conf nakopírujeme do adresáře /etc. Daemon lircd jenom předává stisklá tlačítka dalším aplikacím sloužícím provlastní ovládání a spouštění dalších programů. Například irexec spouští programy z konsole. Pro správnou funkci všech programů pracujících s DO je podřeba mít napsán soubor .lircrc, který přiřazuje tlačítka DO k akcím programů. Můj .lircrc a lircd.conf.

Na konec /etc/rc.d/rc.local si přidejte řadek:

/sbin/modprobe lirc_serial

Skriptiky z tohoto adresare nakopirujte do /usr/local/bin a nastavte jim atribut pro spouštění. V souboru .lircrc si je nastavte k jednotlivým tlačítkům.

Do souboru .xinitrc ve svém home si nekam doprostřed napište irexec ~/.lircrc &, tim se bude dalkové ovládání spouštět po startu Xek.

Mikrofony

Mikrofony slouží k přeměně akustické energie (zvuky)
na energii elektrickou, s kterou můžeme už něco dělat. Jako první člen
elektroakustického řetězce mají podstatný vliv na výslednou kvalitu signálu.

1.1 Základní informace o šíření zvuku

Ze zdroje se zvuk šíří jen pružným látkovým prostředím
libovolného skupenství (takže se nešíří vakuem) v podobě kulových
vlnoploch. Nejčastější prostředí je vzduch, v němž se zvuk šíří jako
podélné postupné vlnění. Nejdůležitější charakteristikou prostředí z
hlediska šíření zvuku je rychlost zvuku v daném prostředí. Rychlost zvuku
ve vzduchu závisí na složení vzduchu (nečistoty, vlhkost), ale nejvíce na
jeho teplotě (s teplotou se mnění hustota prostředí). Ve vzduchu o teplotě
t v Celsiových stupních má zvuk rychlost

Vzoreček pro rychlost

Rychlost zvuku není ovlivněna tlakem vzduchu a je stejná pro zvuková vlnění
všech frekvencí. V kapalinách a pevných látkách je rychlost zvuku větší
než ve vzduchu (popř. jiných plynech). Přibližné hodnoty rychlosti zvuku
pro některé látky jsou uvedeny v tabulce:

Látka Rychlost zvuku [m/s]
Vzduch (13,4 °C)

Voda (25 °C)

Rtuť

Beton

Led

Ocel

Sklo
340

1 500

1 400

1 700

3 200

5 000

5 200

Zde je uvedena tabulka intenzit zvuku z různých zdrojů:

Zvuk Hladina intenzity zvuku [dB]
Zvukový práh 0
Šelest listí 10
Šum listí 20
Pouliční hluk v tichém předměstí 30
Tlumený rozhovor 40
Normální pouliční hluk 50
Hlasitý rozhovor 60
Hluk na silně frekventovaných ulicích velkoměsta 70
Hluk v tunelech podzemních železnic 80
Hluk motorových vozidel 90
Maximální hluk motorky 100
Hlasité obráběcí stroje 110
Startující letadlo ve vzdálenosti 1 m 120
Hluk působící bolest 130

1.2 Něco o dB (decibelech)

V elektroakustice popdobně jako i v jiných oborech se
velice často používá pojmu decibel (dB). Decibel je bezrozměrná poměrová
veličina a je definován takto:

dB = 20log U1/U0

Vztažná hodnota U0 může být
libovolná nebo také pevně stanovená. Například pro napětí se často používá
vztažná hodnota 1 uV (dB/1uV) nebo 0,775 V (označuje se dBu),
pro výkon 1mW (označuje se dBm) a pro hladinu akustického tlaku 20 uPa.
Znaménko + před hodnotou v becibelech znamená zesílení a znaménko –
zeslabení (útlum).

Často používané hodnoty :

-3dB

+3dB

-6dB

+6dB

-20dB

+20dB

-40dB

+40dB

-60dB

+60dB
0,707 násobek

1,41 násobek

polovina

dvojnásobek

desetina

desetinásobek

setina

stonásobek

tisícina

tisícinásobek

Pro výkonové veličiny je decibel definován takto :

dB = 10log P1/P0

Pokles o 3 dB tedy znamená poloviční výkon.

1.3 Princip přeměny zvuku na elektrický signál

Princip činnosti mikrofonu je jednoduchý. Akustický
signál, který se projevuje změnami akustického tlaku, rozechvívá mechanický
systém (membránu), jehož pohyb je snímán elektromechanickým měničem.
Pokud akustický tlak působí na jednu stranu membrány, mluvíme o tlakových
mikrofonech. v tomto případě amplituda membrány nezávisí na směru ani na
vzdálenosti zdroje, ale pouze na akustickém tlaku. Takový mikrofon je všesměrový,
má kulovou směrovou charakteristiku.

Jiný případ nastane, přivede-li se akustický signál
vhodným způsobem i na zadní stranu membrány. Potom výchylka membrány nezávisí
na velikosti akustického tlaku. ale na rozdílu akustického tlaku před a za
membránou. Takovým mikrofonům se říká gradientní. Velikost výstupního
signálu gradientního mikrofonu je závislá na poloměru zakřivení akustické
vlnoplochy. Čím větší zakřivení vlnoplochy, menší poloměr, bližší
akustický zdroj, tím větší výstupní signál. Pro vzdálený zdroj, u kterého
můžeme počítat s rovinnou vlnoplochou (nekonečně velký poloměr zakřivení)
je výstuponínapětí nulové. Gradientní mikrofony se používají pro snímání
akustického signálu ve studiích a pro přenos řeči z hlučného prostředí.

1.4 Směrová charakteristika

Směrová charakteristika je závislost citlivosti
mikrofonu na úhlu, který svírá akustická osa mikrofonu s osou akustickáho
zdroje. Jak již bylo řečeno, tlakové mikrofony jsou všesměrové – mají
kulovou směrovou charakteristiku. Gradientní mikrofony jsou směrové. Podle
konstrukce mohou mít osmičkovou, ledvinovou, kuželovou a asuperledvinovou
charakteristiku. Směrová charakteristika může být závislá na kmitočtu.

Směrová charakteristika mikrofonu

1.5 Rozdělení mikrofonů

Mikrofony můžeme rozdělovat podle různých kritérií.
Mapř. podle druhu akustického přijímače (tlakové, gradientní, vlnové)
nebo podle směrové charakteristiky, či druhu mechanického systému (membránové,
bezmembránové) atd.

Dále se mohou mikrofony dělit podle druhu elektromechanického měniče:

  • uhlíkové
  • elektrodynamické
  • elektromagnetické
  • elektrostatické
  • elektretové
  • piezoelektrické

1.5.1 Uhlíkové mikrofony

Uhlíkové mikrofony pracují na principu změny přechodového
odporu uhlíkových zrnek, jimiž prochází stejnosměrný napájecí proud.

Podstatné části dnešních mikrofonů jsou:

membrána M

pevná uhlíková elektroda E

uhlíková zrnka (prach) p

plstěný kroužek PK

Uhlíkový mikrofon

Plstěný kroužek s pevnou uhlíkovou elktrodou tvoří tzv. uhlíkovou
komoru vyplněnou z 85% uhlíkovými zrnky. Stejnosměrný proud se přivádí
jedním pólem k pevné elektrodě a druhým k  membráně. Zvukové vlny,
dopadající na plochu membrány ji rozkmitají tak že stlačuje uhlíkový
prach, jehož přechodový odpor se mění v rytmu kmitání membrány. Tak se
moduluje klidový stejnosměrný napájecí proud. Střídavá složka napájecího
proudu je vlastní hovorový proud.


Nevýhodou uhlíkového mikrofonu je jeho velké zkreslení a
nestabilní přenosové vlastnosti.Výhodný je tím, že umožňuje přenášet
velký výkon (až 1 mW) na poměrně velké vzdlenosti bez zařazení zesilovačů,
má jednoduchou konstrukci a tím i nízkou cenu.

1.5.1 Elektrodynamické mikrofony

S elektrodynamickými mikrofony se v praxi setkáváme
velmi často. Vyznačují se širokým kmitočtovým pásmem, malým zkreslením,
nízkým šumem a robusní konstrukcí. Elektrodynamický mikrofon může být s
membránou anebo bez ní (páskový). Je-li membrána použita, je s ní spojena
kmitací cívka, která se v rytmu změn akustického tlaku pohybuje v magnetickém
poli permanentního magnetu.

Pohybem cívky v magnetickém poli se v ní indukuje napětí
úměrné rychlosti změny akustického tlaku.U páskových mikrofonů je membrána
s cívkou nahrazena příčně zvlněnou hliníkovou fólií ve tvaru pásku. Pásek
je rozechvíván změnami akustického tlaku a přímo v něm se indukuje nízkofrekvenční
elektrický signál.

Elektrodynamický mikrofon
a) Principiální uspořádání
elektrodynamického mikrofonu s membránou a cívkou

b) Konstrukce gradientního elektrodynamického mikrofonu
Páskový mikrofon
Páskový mikrofon

Elektrodynamické mikrofony mohou být tlakové nebo
gradientní. Snímací prvek zůstává stejný, mění se jen mechanická
konstrukce. U gradientních mikrofonů se akustický tlak přivádí i na zadní
stranu membrány (resp. pásku).


Dynamické mikrofony jsou nízkoimpedanční se jmenovitou
impedancí 200 Ohmu. Jejich citlivost bývá kolem 1,5 mV/Pa.
Kvalitní výrobky uspokojivě přenášejí signály v rozsahu 30 Hz-15kHz,
při zkreslení menším než 0,5%.

1.5.2 Elektromagnetické mikrofony

Elektromagnetické mikrofony pracují na stejném fyzikálním principu jako
elektrodynamické mikrofony. U těchto mikrofonů je snímací cívka pevná.
Není tedy spojena s membránou. Pohyb chvějky, která je s membránou spojena,
případně přímo membrány, mění magnetický tok cívkou a tím v ní
indukuje nízkofrekvenční signál. Elektromagnetické mikrofony se vyznačují
malými rozměry a nízkou cenou, ela také omezeným kmitočtovým rozsahem
(300-3400 Hz). Jsou vhodné jen pro přenos řeči.

1.5.3 Elektrostatické mikrofony

Elektrostatické mikrofony, často nesprávně označované jako kondenzátorové,
jsou složeny ze dvou od sebe izolovaných elektrod. Před pevnou elektrodou je
v malé vzdálenosti (20-30 um) umístěna membrána
zkovové nebo metalizované fólie. Na takto vzniklý kondenzátor o kapacitě
30-100pF je připojeno stejnosměrné polarizované napětí o velikosti 30-200
V. Velikost kapacity takto vzniklého kondenzátoru můžeme určit z rovnice:

C = e . S/d

kde e je permitivita vzduchu, S je plocha elektrod
a d jejich vzdálenost. Náboj tohoto kondenzátoru je:

Q = C . U

kde U je polarizační napětí. Změny akustického tlaku rozechvívají
membránu, mění se vzdálenost d a tím kapacita kondenzátoru. Zajistíme-li,
aby se náboj při změně kapacity kondenzátoru nemohl rychle vyrovnat, potom
z druhé rovnice vyplývá, že při zmenšení kapacity se musí zvětšit napětí
kondenzátoru (Q uvažujeme konstantní). Požadavek pomalého vyrovnání náboje
při změně kapacity zajistíme rezistorem R, který zvýší cnitřní odpor
zdroje polarizačního napětí. Jeho velikost volíme s ohledem na nejnižší
požadovaný přenášený kmitočet takto:

R >= 1/2 .p.fd.C

kde fd je nejnižší přenášený kmitočet.

Elektrostatický mikrofon
Uspořádání elektrostatického mikrofonu

Na jiném principu snímání změny kapacity pracuje tzv.
vysokofrekvenční elektrostatický mikrofon. Proměnná kapacita je zapojena v
obvodu vysokofrekvenčního oscilátoru. Působením zvuku dochází k frekvenční
modulaci oscilátoru. Působením zvuku dochází k frekvenční modulaci oscilátoru.
Demodulací pak získáme nízkofrekvenční signál.

Pevná elektroda je opatřena otvory, aby se zmenšila závislost
akustické impedance vzduchové mezery na výchylce membrány.

Elektrostatické mikrofony se vyznačují velmi vyricnanou
kmitočtovou charakteristikou, vysokou citlivostí, velmi malým zkreslením a i
vysokou stabilitou vlastností. Proto se používají ve studiové technice a
pro měřící účely.

1.5.4 Elektretové mikrofony

Kromě elektrostatických mikrofonů s polarizačním napětím
se používají i elektrostatické mikrofony elektretové. U těchto mikrofonů
je jedna elektroda opatřena vrstvou elektretu. Elektret je dielektrický materiál
nesoucí permanentní elektrický náboj. Není tedy potřebný zdroj polarizačního
napětí.

Elektretový mikrofon

1.5.5 Piezoelektrický mikrofon

Tyto mikrofony využívají piezoelektrického jevu. U některých
látek vzniká při mechanickém namáhání tlakem nebo ohybem elektrický náboj,
který se snímá elektrodami. Piezoelektrické mikrofony mají poměrně velkou
impedanci ( vnitřní kapacita kolem 1 nF) a citlevost 1-3 mV/Pa.

Piezoelektrický mikrofon