BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Audio CD's von der Konsole aus bedienen

Audio CD's lassen sich bequem von der Konsole aus mit cdcontrol(1) bedienen. cdcontrol befindet sich schon im FreeBSD Basissystem, muss also nicht über die Ports installiert werden.

Mit der -f Option kann das CD-Laufwerk angegeben werden. Befindet sich das Laufwerk unter /dev/cdrom, /dev/cd0 oder /dev/acd0 so kann die -f Option weggelassen werden:

# cdcontrol [-f /dev/<laufwerk>] <Kommando> 

Um das CD-Laufwerk zu öffnen, kann folgender Befehl gebraucht werden:

# cdcontrol eject

Zeigt die Anzahl Lieder und weitere Informationen der CD an:

# cdcontrol info

Startet das Abspielen der CD. Optional kann auch noch angegeben werden, welches Lied abgespielt werden soll:

# cdcontrol play [<Liednummer>]

Spielt das nächste Lied ab:

# cdcontrol next

Spielt das vorherige Lied ab:

# cdcontrol prev

Pause:

# cdcontrol pause

Nach einer Pause weiterspielen:

# cdcontrol resume

Zeigt das aktuell abgespielte Lied an und welche Lautstärke eingestellt ist:

# cdcontrol status

Beendet das Abspielen:

# cdcontrol stop

Weitere Optionen von cdcontrol findet man in der Manpage cdcontrol(1).

Benutzt man cdcontrol als normaler Benutzer und folgende Fehlermeldung tritt auf, so muss die Berechtigung des CD-Laufwerkes angepasst werden:

# cdcontrol play
cdcontrol: /dev/acd0: Permission denied

Dies kann zum Beispiel durch einen Eintrag in der /etc/devfs.rules gemacht werden. Folgender Eintrag den bestehenden Regeln anfügen, wobei das Laufwerk (hier acd0) und die Benutzergruppe (hier users) individuell angepasst werden muss:

add path 'acd0' mode 0660 group users
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Konsolen verwalten mit GNU Screen

Mit GNU Screen lassen sich mehrere Terminals parallel verwalten. So lassen sich zum Beispiel mit nur einer SSH Verbindung zu einem entfernten Rechner mehrere Konsolen öffnen, in diesen diverse Programme starten und einfach zwischen den Konsolen hin und herschalten. Ein weiterer sehr grosser Vorteil ist, wenn die SSH-Verbindung unterbrochen wird, so sind die verschiednene gestarteten Konsolen nicht verloren, sondern laufen in Screen weiter, so dass man die Arbeit zu einem späteren Zeitpunkt fortsetzen kann.

GNU Screen befindet sich in den Ports auf FreeBSD unter sysutils/screen auf OpenBSD unter misc/screen.

Screen wird auf der Kommandozeile gestartet:

# screen

Danach kann Screen mit verschiedenen Tastenkombinationen bedient werden:

Ctrl + a ? Zeigt alle Tastenkombinationen an
Ctrl + a c Erzeugt eine weitere Konsole in Screen
Ctrl + a n Wechselt zur nächsten Konsole
Ctrl + a p Wechselt zur vorherigen Konsole
Crtl + a A Editiert den Namen der aktuellen Konsole
Ctrl + a w Zeigt an, auf welcher Nummer sich welche Konsole befindet
Ctrl + a 0...9 Wechselt zur Konsole mit der jeweiligen Nummer
Ctrl + a N Zeigt die Nummer der aktuellen Konsole an
Ctrl + a S Splittet das aktuelle Fenster
Ctrl + a Ctrl + i Wechselt zwischen den gesplitteten Fenstern
Ctrl + a \ Beendet Screen und alle Konsolen werden auch beendet
Ctrl + a d Trennt Screen. Arbeit kann zu einem späteren Zeitpunkt an der gleichen Stelle wieder aufgenommen werden

Wurde eine Session mit Ctrl + a d geschlossen, kann man diese zu einem späteren Zeitpunkt wieder aufnehmen. Um herauszufinden, ob noch Sessions laufen, kann man folgende Option benutzen:

# screen -list

Um eine gestartete Screen-Session fortzusetzen, benutzt man die -r Option:

# screen -r

Möchten mehrere Benutzer an der gleichen Session arbeiten, so kann zusätzlich die -x Option verwendet werden, die es erlaubt, dass mehrere Benutzer die gleiche Session verwenden:

# screen -xr

Man kann der Screen-Session auch einen Namen geben, so dass man mehrere Sessions gestartet haben kann und diese dan n einfach identifizieren kann

# screen -S <Sessionname>

Hat man diese Session wieder mit Ctrl + a d geschlossen, so kann man diese zu einem späteren Zeitpunkt wiefolgt wieder aufnehmen:

# screen -r <Sessionname>

Eine ausführliche Beschreibung aller Optionen und Tastenkombinationen findet man in der Manpage screen(1).

Comments (1)  Permalink

Einen schnellen CVSup-Server finden mit fastest_cvsup

Um das Aktualisieren, von z.B. des Portbaums, mit CVSup oder csup zu beschleunigen, kann man mit fastest_cvsup(7) zuerst den schnellsten CVSup-Server herausfinden. fastest_cvsup findet man im FreeBSD Portbaum unter sysutils/fastest_cvsup.

Um zum Beispiel den schnellsten der schweizer- und deutschen CVSup-Server zu finden, benutzt man fastest_cvsup wie folgt:

# fastest_cvsup -c ch,de
>> Querying servers in countries: de ch
--> Connecting to cvsup.de.freebsd.org [212.19.57.134]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 25.36 ms
--> Connecting to cvsup.ch.freebsd.org [217.8.192.70]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 24.36 ms
--> Connecting to cvsup2.de.freebsd.org [213.238.33.226]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 26.15 ms
--> Connecting to cvsup3.de.freebsd.org [131.159.72.30]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 36.55 ms
--> Connecting to cvsup4.de.freebsd.org [212.19.57.134]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 25.15 ms
--> Connecting to cvsup5.de.freebsd.org [195.30.6.180]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 32.89 ms
--> Connecting to cvsup6.de.freebsd.org [62.206.253.13]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 41.53 ms
--> Connecting to cvsup7.de.freebsd.org [194.162.162.209]...
- server replied: OK 17 0 SNAP_16_1g CVSup server ready
- time taken: 27.28 ms
--> Connecting to cvsup8.de.freebsd.org [212.118.165.142]...
- server replied: OK 17 0 SNAP_16_1h CVSup server ready
- time taken: 30.45 ms

>> Speed Daemons:
- 1st: cvsup.ch.freebsd.org 24.36 ms
- 2st: cvsup4.de.freebsd.org 25.15 ms
- 3st: cvsup.de.freebsd.org 25.36 ms

Damit beim Ausführen von CVSup jedesmal der schnellste CVSup-Server gesucht wird, kann man zum Beispiel folgendes Hilfsskript verwenden:

#!/bin/sh
if SERVER=`fastest_cvsup -Q -c ch,de`; then
cvsup -g -L 2 -h $SERVER <Pfad zum supfile>
fi

Für csup verwendet man dies hier:

#!/bin/sh
if SERVER=`fastest_cvsup -Q -c ch,de`; then
csup -L 2 -h $SERVER <Pfad zum supfile>
fi

Mehr Informationen zu fastes_cvsup findet man auf http://fastest-cvsup.sourceforge.net/. Alle Optionen von fastest_cvsup kriegt man mit fastest_cvsup -h.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

DOS Zeileunumbrüche CR/LF in Unix LF umwandeln

Besitzt man Textdateien, die DOS-Zeilenumbrüche enthalten, so kann man diese mit dos2unix in Unix-Zeilenumbrüche umwandeln.
Um DOS- in Unix-Zeilenumbrüche umzuwandeln benutzt man dos2unix:

# dos2unix <Textdatei>

Falls man Unix- in DOS-Zeilenumbrüche umwandel will, benutzt man unix2dos:

# unix2dos <Textdatei>

Beide findet man in den FreeBSD Ports unter converters/unix2dos.

Comments (4)  Permalink

Portbaum einfach durchsuchen mit portsearch

Möchte man den Portbaum durchsuchen, so kann man einfach portsearch zur Hilfe nehmen.

# cd /usr/ports/sysutils/portsearch/ && make install clean

Nach was man den Portbaum mit portsearch alles durchsuchen kann, zeigt ein Aufruf von Portsearch ohne Parameter:

# portsearch 
Usage:

update/create database:
portsearch -u [-H portshome] [-vvv]

search for ports (based on extended regular expressions, case sensitive):
-n name by name (name= can be used)
-k key by name, comment or dependencies (key= can be used)
-p path by path on the filesystem
-i info by info (comment)
-m maint by maintainer
-c cat by category
-F fdep by fetch dependencies
-E edep by extract dependencies
-P pdep by patch dependencies
-B bdep by build dependencies
-R rdep by run dependencies
-D dep by build or run dependencies
-w www by www site
-f file that install file
-I ignore case
-o fields output fields, default: name,path,info,maint,bdep,rdep,www

-V print version information

Bevor man portsearch das erste Mal benutzt, muss eine Datenbank für portsearch erstellt werden. Dies kann eine Weile dauern:

# portsearch -u

Ist die Datenbank erstellt, so kann man portsearch benutzen. Möchte man nun z.B. herausfinden in welchem Port sich portversion(1) befindet, so kann portsearch mit der -f Option genutzt werden:

# portsearch -f portversion
Port: portupgrade-2.0.1_1,1
Path: /usr/ports/sysutils/portupgrade
Info: FreeBSD ports/packages administration and management tool suite
Maint: koma2@lovepeers.org
B-deps: ruby-1.8.4_4,1
R-deps: perl-5.8.7_2 ruby-1.8.4_4,1 ruby18-bdb1-0.2.2
WWW:
Files: man/man1/portversion.1.gz, sbin/portversion

1 ports, 2 files

So kann der Portbaum effektiv durchsucht und genutzt werden.

UPDATE 05.02.2007:

portsearch wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portsearch kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portsearch && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Hosts erlauben den X Server zu benutzen

Ist man als ein bestimmter Benutzer in X eingeloggt und möchte als ein anderer Benutzer (z.B. root) eine X Applikation öffnen, so schlägt dies meistens mit folgender Fehlermeldung fehl:

# xterm
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

xterm Xt error: Can't open display: :0.0

Mit dem Befehl xhost(1) können nun Verbindungen auf den X Server zugelassen werden.

# xhost
access control enabled, only authorized clients can connect

Im Moment können keine anderen Rechner oder Benutzer auf den X Server zugreifen. Wollen wir nun allen lokalen Benutzern erlauben auf den X Server zuzugreifen, so kann dies folgendermassen gemacht werden:

# xhost localhost
localhost being added to access control list
# xhost
access control enabled, only authorized clients can connect
INET:localhost
INET6:localhost

Dies erlaubt allen lokalen Benutzern den X Server zu benutzen und ist deshalb für die meisten Mehrbenutzersysteme nicht geeignet. Will man nur ausgewählten Benutzern die Erlaubnis erteilen, sollte man lieber xauth verwenden: http://www.theparallax.org/dcoul/user2root/xhost.shtml

Möchte man nun die Berechtigung der lokalen Benutzer wieder rückgängig machen, so kann dies mit einem Minus vor dem Host gemacht werden:

# xhost -localhost

So können auch entfernte Rechner authorisiert werden, auf dem Rechner den X Server zu benutzen, indem man diese mittels der IP Adresse freigibt. Aber auch hier ist zu beachten, dass dann alle Benutzer dieses Rechners den X Server benutzen können.

# xhost <IP-Adresse>

Möchte man aus irgend einem Grund die Zugangskontrolle für den X Server abschalten, so kann man dies so machen:

# xhost +
access control disabled, clients can connect from any host

Um die Zugangkontrolle wieder zu aktivieren, einfach folgenden Befehl benutzen:

# xhost -
access control enabled, only authorized clients can connect
 Permalink

Installierte Ports auf Sicherheitsprobleme prüfen

Möchte man überprüfen, ob die installierten Ports Sicherheitsprobleme aufweisen, so empfielt es sich security/portaudit zu installieren:

# cd /usr/ports/security/portaudit && make install clean

Danach kann portaudit in der Konsole ausgeführt werden:

# portaudit -Fda
auditfile.tbz 100% of 32 kB 43 kBps
New database installed.
Database created: Fr 3 Feb 2006 16:10:03 CET
0 problem(s) in your installed packages found.

Die Option -F lädt die aktuellste Datenbank herunter, in der alle aktuellen Sicherheitsprobleme der Ports verzeichnet sind, -d zeigt die Zeit an, wann die Datenbank erstellt wurde und -a prüft alle installierten Ports auf Sicherheitsprobleme.

Im folgenden Beispiel sollte ein Update gewisser Ports in Betracht gezogen werden:

# portaudit -Fda
auditfile.tbz 100% of 32 kB 36 kBps
New database installed.
Database created: Sat Feb 4 00:10:03 CET 2006
Affected package: clamav-0.86.2_1
Type of problem: clamav -- possible heap overflow in the UPX code.
Reference: http://www.FreeBSD.org/ports/portaudit/612a34ec-81dc-11da-a043-0002a5c3d308.html

Affected package: p5-Mail-SpamAssassin-3.0.4
Type of problem: p5-Mail-SpamAssassin -- long message header denial of service.
Reference: http://www.FreeBSD.org/ports/portaudit/7f3fdef7-51d2-11da-8e93-0010dc4afb40.html

Affected package: squid-2.5.10_5
Type of problem: squid -- FTP server response handling denial of service.
Reference: http://www.FreeBSD.org/ports/portaudit/1c3142a3-4ab2-11da-932d-00055d790c25.html

Affected package: ruby-1.8.2_4
Type of problem: ruby -- vulnerability in the safe level settings.
Reference: http://www.FreeBSD.org/ports/portaudit/1daea60a-4719-11da-b5c6-0004614cc33d.html

Affected package: clamav-0.86.2_1
Type of problem: clamav -- arbitrary code execution and DoS vulnerabilities.
Reference: http://www.FreeBSD.org/ports/portaudit/271498a9-2cd4-11da-a263-0001020eed82.html

Affected package: unzip-5.51
Type of problem: unzip -- permission race vulnerability.
Reference: http://www.FreeBSD.org/ports/portaudit/9750cf22-216d-11da-bc01-000e0c2e438a.html

Affected package: pcre-5.0
Type of problem: pcre -- regular expression buffer overflow.
Reference: http://www.FreeBSD.org/ports/portaudit/b971d2a6-1670-11da-978e-0001020eed82.html

Affected package: squid-2.5.10_5
Type of problem: squid -- possible denial of service condition regarding NTLM authentication.
Reference: http://www.FreeBSD.org/ports/portaudit/44e7764c-2614-11da-9e1e-c296ac722cb3.html

8 problem(s) in your installed packages found.

You are advised to update or deinstall the affected package(s) immediately.

Ausserdem installiert portaudit folgende Datei /usr/local/etc/periodic/security/410.portaudit, welche täglich während den daily security Skripten ausgeführt wird und die installierten Ports automatisch auf Sicherheitslöcher prüft.

Desweiteren wird nun bevor man einen Port installiert automatisch überprüft, ob der installierte Port Sicherheitslöcher aufweist.

Eine Weboberfläche der Datenbank findet man hier: http://www.vuxml.org/freebsd/index.html

UPDATE 05.02.2007:

portaudit wurde von security in die neue Kategorie ports-mgmt verschoben. portaudit kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portaudit && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (4)  Permalink

Dateien mit allen Dateiattributen kopieren

Möchte man Dateien kopieren, die Dateiattribute der neu erstellten Dateien jedoch identisch mit den Originalen belassen, so kann man dies einfach mit cp -p machen. Dies kopiert auch alle Attribute wie die Zeitstempel, Dateiflags, Dateiberechtigungen, User ID und Group ID.

Beispiel:

Datei eines Benutzers wird von root nur mit cp kopiert:

# ls -ol
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei*
# cp testdatei testdatei2
# ls -ol
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei*
-rwxr-xr-x 1 root wheel - 9 27 Jan 16:35 testdatei2*

Die selbe Datei wird von root mit cp -p kopiert:


# cp -p testdatei testdatei3
# ls -ol
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei*
-rwxr-xr-x 1 root wheel - 9 27 Jan 16:35 testdatei2*
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei3*

Soll zusätzlich zum Kopieren noch überprüft werden, ob die Datei richtig kopiert wurde, so empfiehlt es sich cpdup zu verwenden. cpdup(1) findet man in den Ports unter sysutils/cpdup. Kopiert man eine Datei mit cpdup -m, so generiert cpdup einen MD5 Hash der Datei, kopiert die Datei und vergleicht den MD5 Hash der neu erstellten Datei mit dem Original. Stimmen diese nicht überein, so wird die Datei erneut kopiert.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Portbaum aktualisieren mit Portsnap

Alternativ zu CVSup kann der Portbaum auch mit portsnap auf den neusten Stand gebrach werden. Seit FreeBSD 6.0-BETA3 befindet sich portsnap im nun FreeBSD Basissystem. Welche Vorteile portsnap gegenüber CVSup haben soll, kann man hier nachlesen: http://www.daemonology.net/portsnap/

Benutzt man portsnap das erste mal, so muss man den Snapshot zuerst herunterladen:

# portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... using portsnap1.FreeBSD.org.
Fetching public key... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Mi 11 Jan 2006 01:32:11 CET:
0d1d343821c1a727b12b377de9697b248fee48a81ea749100% of 38 MB 73 kBps 00m00s
Extracting snapshot... done.
Verifying snapshot integrity... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Updating from Mi 11 Jan 2006 01:32:11 CET to Mi 11 Jan 2006 19:57:38 CET.
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 94 patches.....10....20....30....40....50....60....70....80....90.. done.
Applying patches... done.
Fetching 10 new ports or files... done.

Danach kann er mit folgendem Befehl entpackt werden:

# portsnap extract

Nachdem man dies einmal gemacht hat, kann man den Portbaum nun ganz einfach auf einen neueren Stand bringen:

# portsnap fetch update

Besitzt man eine FreeBSD Version in der portsnap noch nicht im Basisystem ist, also eine vor 6.0-BETA3 oder 7.0-CURRENT, so kann man portsanp alternativ aus den Ports installieren:

# cd /usr/ports/sysutils/portsnap && make install clean

Hat man den Portbaum noch nicht installiert, so kann man auch das Paket von portsnap installieren:

# pkg_add -r portsnap

Mehr Informationen hier: portsnap(8)

UPDATE 05.02.2007:

portsnap wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portsnap kann auf FreeBSD Systemen vor 6.0-BETA3 wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portsnap && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

E-Mails mit Attachment von der Konsole aus senden

Möchte man ein E-Mail mit einem kurzen Text von der Konsole aus schreiben, so kann man einfach folgenden Befehl benutzen:

# echo "<Text>" | mail -s "<Betreff>" empfänger@domain

Möchten man einen längeren Text schreiben, so wird dieser in eine Textdatei geschrieben und dann so versendet:

# mail -s "<Betreff>" empfänger@domain < <Textdatei>

Möchte man dieses Mail an mehrere Benutzer mit CC senden, so verwendet man die -c Option und listet die Benutzer mit einem Komma abgetrennt auf:

# mail -s "<Betreff>" -c empfänger2@domain,empfänger3@anderedomain empfänger@domain < <Textdatei>

Möchte man nun eine binäre Datei versenden, so muss man diese zuerst mit uuencode umwandeln.

# uuencode <Binärdatei> <Dateiname> | mail -s "<Betreff>" empfänger@domain

Mit folgendem Befehl versendet man einen Text und die binäre Datei.

# (more <Textdatei>; uuencode <Binärdatei> <Dateiname>) | mail -s "<Betreff>" empfänger@domain

Möchte man diese binäre Datei auf der Konsole aus dem E-Mail extrahieren, so verwendet man uudecode:

# uudecode <Pfad zu E-Mai>

Dies entpackt die Datei im aktuellen Verzeichnis mit dem Dateinamen der beim codieren angegeben wurde.

Comments (4)  Permalink
Prev Next301-310/325