1. Einleitung
Nach einer erfolgreichen Installation von Firebird enthält das Verzeichnis /opt/firebird/bin
eine Reihe nützlicher Shell-Skripte.
Dieses Handbuch enthält Einzelheiten dazu, wofür diese Skripte bestimmt sind und wie sie verwendet werden.
Im Rest dieses Handbuchs werden die folgenden Skripte erläutert:
-
changeDBAPassword.sh
-
createAliasDB.sh
-
fb_config
-
changeRunUser.sh
-
restoreRootRunUser.sh
-
changeGdsLibraryCompatibleLink.sh (Classic server only.)
Die obige Liste ist zum Zeitpunkt des Schreibens korrekt und gilt, sofern nicht anders angegeben, nur für Firebird 1.5, 2.0 und 2.1 Super Server, die auf einem Linux-System installiert sind. Andere Unix-Varianten haben möglicherweise andere Skripte. Ich kann diese möglichen Änderungen derzeit nicht diskutieren, da ich keinen Zugriff auf andere Unix-Systeme habe. |
2. ChangeDBAPassword
Das Skript changeDBAPassword.sh
ermöglicht die Auswahl des Kennworts für die SYSDBA-Benutzer und das Handbuch der Eigentümer
Das Skript wird im Rahmen des Installationsverfahrens im nicht interaktiven Modus geändert, um in ein Dateisches zu ändern, das in der Datei / opt / firebird / SYSDBA.password
verbessert ist.
Bis zur Version 2.1 von Firebird wird das Kennwort entwickelt im Startskript /etc/rc.d/init.d/firebird
verwendet, das auch einen Symlink enthält, der auf /etc/init.d/firebird
verweist.
Die Sicherheitsdatenbank wird auch mit dem neuen Kennwort aktualisiert. (/opt/firebird/security.fdb
oder /opt/firebird/security2.fdb
)
Das Skript muss als Root-Benutzer ausgeführt werden. Wenn es ausgeführt wird, werden Sie durch Nachdem das Skript ausgeführt wurde, enthält die Datei |
Das Folgende ist ein Beispiel für das Ausführen des Skripts, um das SYSDBA-Kennwort von 'masterkey' in 'biroguin' zu ändern, was als erfundenes Wort weniger knackbar oder erraten werden sollte.
# cd /opt/firebird/bin # ./changeDBAPassword.sh Please enter current password for SYSDBA user : masterkey Please enter new password for SYSDBA user : biroguin GSEC> GSEC> Running ed to modify /etc/init.d/firebird
Wenn Sie das SYSDBA-Kennwort mit dem Dienstprogramm Dies gilt nicht bei Verwendung von Firebird 2.1 und höher, da für das Startskript das SYSDBA-Kennwort nicht mehr erforderlich ist. Im obigen Beispiel wird die letzte Ausgabezeile auf Systemen mit Firebird 2.1 und höher nicht angezeigt, da die Startskripte nicht mehr geändert werden, wenn das SYSDBA-Kennwort geändert wird. |
3. CreateAliasDB
Das Skript createAliasDB.sh
ermöglicht die Erstellung einer neuen Datenbank und die Erstellung eines Alias für diese Datenbank in der Datei /opt/firebird/aliases.conf
.
Das Skript |
Wenn Ihr System nicht ordnungsgemäß eingerichtet ist, schlägt der Schritt zur Datenbankerstellung möglicherweise fehl, der Alias wird jedoch weiterhin zur Alias-Datei hinzugefügt. Dies kann dazu führen, dass Sie den Alias später nicht mehr ordnungsgemäß hinzufügen können, da das Skript überprüft, ob Sie einen vorhandenen Alias nicht überschreiben. Sie müssen die Aliasdatei manuell bearbeiten, um den beschädigten Alias zu entfernen.
Alle Datenbanken müssen dem Firebird-Benutzer und der Firebird-Gruppe gehören. Im Folgenden wird ein neues Verzeichnis angezeigt, das vom Root-Benutzer erstellt wird, damit Firebird-Datenbanken erstellt werden können.
# cd /u01 # mkdir databases # chown firebird:firebird databases
Zu diesem Zeitpunkt steht das Verzeichnis /u01/database
als Repository für eine oder mehrere Firebird-Datenbanken zur Verfügung.
Im obigen Beispiel war das Verzeichnis /u01
offensichtlich bereits vorhanden.
3.1. createAliasDB.sh-Parameter
Um das Skript createAliasDP.sh
ausführen zu können, muss ein Befehl wie in folgender Weise ausgeführt werden:
# createAliasDB.sh <new_alias> <database_name>
Das Skript verwendet zwei Parameter in der Befehlszeile, die beide obligatorisch sind:
- new_alias
-
Der erste Parameter ist der neue Alias, den Sie erstellen möchten. Dieser Alias darf nicht bereits in der Aliasdatei vorhanden sein. Andernfalls wird ein Fehler angezeigt und es werden keine weiteren Maßnahmen ergriffen.
- database_filename
-
Der zweite Parameter gibt den vollständigen Pfad zur Datenbankdatei an. Sie dürfen keinen relativen Pfad angeben, da dies dazu führen kann, dass zum Zeitpunkt der Verbindung falsche Datenbankdateinamen verwendet werden. Das Skript lehnt jeden Versuch ab, einen relativen Pfadnamen anstelle eines vollständigen Pfadnamens zu übergeben.
Eine brandneue leere Datenbank wird erstellt, sofern der an das Skript übergebene Name noch nicht vorhanden ist. Wenn die Datenbank bereits vorhanden ist, wird nur der Alias erstellt und der Aliasdatei hinzugefügt.
4. Fb_config
Das Skript fb_config
soll aus einem Makefile heraus verwendet werden, um verschiedene Einstellungen und Compileroptionen bereitzustellen, die genau und spezifisch für die verwendete Installation sind.
Dieses Skript kann von jedem Benutzer ausgeführt werden, dem Ausführungsberechtigungen erteilt wurden. Sie müssen kein Root sein, um dieses Skript verwenden zu können. |
4.1. fb_config-Optionen
Verwenden Sie zum Ausführen des Skripts fb_config
eine Befehlszeile ähnlich der folgenden:
fb_config <option> [ <option> [...]]
Das Skript verwendet eine oder mehrere Optionen in der Befehlszeile:
--help
-
Dieser Parameter zeigt die Liste der zulässigen Optionen an. Es sollte nicht zusätzlich zu anderen Optionen geliefert werden.
--cflags
-
Diese Option gibt die Liste der Verzeichnisse zurück, in denen Firebird-Include-Dateien gespeichert sind. Dies wird von den C- und C ++ - Compilern benötigt, damit die #include-Anweisungen des Compilers korrekt aufgelöst werden können. Auf meinem eigenen System gibt diese Option ‘
-I/opt/firebird/include
’ zurück. --libs
-
Diese Option gibt die Liste der Verzeichnisse zurück, in denen sich Firebird-Bibliotheken befinden, sowie eine Liste der Bibliotheken, die vom Linker verknüpft werden müssen, um eine Client-Server-Firebird-Anwendung zu erstellen. Diese Option gibt auf meinem System ‘
-L/opt/firebird/lib -lfbclient
’ zurück. --embedlibs
-
Diese Option gibt die Liste der Verzeichnisse zurück, in denen sich Firebird-Bibliotheken befinden, sowie eine Liste der Bibliotheken, die vom Linker verknüpft werden müssen, um eine eingebettete Firebird-Anwendung zu erstellen. Diese Option gibt auf meinem System ‘
-L/opt/firebird/lib -lfbembed
’ zurück. --bindir
-
Diese Option gibt auf meinem System den vollen Pfad ‘
/opt/firebird/bin
’ für das/bin
-Verzeichnis der Firebirdinstallation zurück. --version
-
Diese Option gibt eine dreiteilige Versionszeichenfolge zurück, die aus der Verkettung der Firebird-Build-Version, einem Bindestrich, der Paketversion, einem Punkt und der Systemarchitektur besteht. Mein eigenes Linux-Notebook gibt ‘
1.5.0.4290-0.i686
’ zurück.
Das Folgende ist ein kurzer Auszug aus einem Makefile, der zeigt, wie zwei Makros, FBFLAGS
und FBLIBS
, definiert und mit fb_config
auf die richtigen Werte initialisiert werden.
Beachten Sie die Verwendung des Back-Tick-Zeichens (`
) anstelle eines einfachen Anführungszeichens ('
).
...
FBFLAGS = `fb_config --cflags`
FBLIBS = `fb_config --libs`
...
5. ChangeRunUser
Unter Firebird 1.5 gibt es zwei Versionen des Skripts changeRunUser.sh
, die mit dem Präfix SS
für Super Server-Installationen und die mit dem Präfix CS
für Classic Server-Installationen.
Ab Firebird 2 lautet das Skript einfach changeRunUser.sh
.
Das Skript sollte als root ausgeführt werden. |
Mit dem Skript changeRunUser.sh
können der Benutzer und die Gruppe, unter denen der Firebird-Server ausgeführt wird, geändert werden.
Standardmäßig ist dies jetzt der Firebird-Benutzer und die Firebird-Gruppe. In früheren Versionen wurde der Firebird-Server jedoch als Root-Benutzer ausgeführt, was aus Sicht der Systemsicherheit unerwünscht ist und das Erstellen von Datenbanken im gesamten Dateisystem ermöglichte.
Mit dem neuen Firebird-Benutzer können Einschränkungen für die Erstellung von Datenbanken festgelegt werden.
Das Skript ändert den geschuldeten Benutzer und die Gruppe einer Reihe von Dateien im Firebird-Installationsverzeichnis, die Protokolldatei sowie das Startskript /etc/rc.d.init.d/firebird
, mit dem der Firebird-Server gestartet und gestoppt wird.
5.1. ChangeRunUser.sh-Parameter
Verwenden Sie zum Ausführen des Skripts eine Befehlszeile, die der folgenden ähnelt:
changeRunUser.sh <username> <groupname>
Das Skript verwendet zwei Parameter in der Befehlszeile, die beide optional sind, da Sie aufgefordert werden, wenn beide weggelassen werden. Wenn Sie nur einen Parameter angeben, wird davon ausgegangen, dass es sich um den Benutzernamen handelt, und Sie werden zur Eingabe des Gruppennamens aufgefordert.
- username
-
Dieser Parameter legt den Benutzernamen fest, unter dem der Firebird-Server ausgeführt werden soll. Der angegebene Wert wird gegen Einträge in
/etc/passwd
validiert. - groupname
-
Dieser Parameter legt den Gruppennamen fest, unter dem der Firebird-Server ausgeführt werden soll. Der angegebene Wert wird anhand von Einträgen in
/etc/group
überprüft.
Das folgende Beispiel zeigt die Verwendung von changeRunUser.sh
, um den besitzenden Benutzer und die Gruppe in firebird zu ändern.
Der Firebird-Benutzer und die Firebird-Gruppe sind bei der Installation von Firebird die Standardeinstellung. Sie müssen das Skript also nicht ausführen, es sei denn, Sie haben diese Details bereits geändert.
# cd /opt/firebird/bin # ./changeRunUser.sh firebird firebird Updating /opt/firebird Updating startup script Completed
Wenn Sie Firebird 2.1 oder höher ausführen, wird keine Eingabeaufforderung mehr angezeigt, wenn Sie dieses Skript ohne Parameter ausführen. Das Skript verwendet jetzt standardmäßig Firebird für den Benutzer und die Gruppe, wenn Sie keine Parameter angeben. Das Ausführen des Skripts unter 2.1 bietet Folgendes:
# cd /opt/firebird/bin # ./changeRunUser.sh Shutting down Firebird done Change Firebird install for /opt/firebird to uid=firebird gid=firebird (User or group options can be changed by editing this script) Press return to continue - or ^C to abort Updating /etc file(s) Updating /opt/firebird Starting Firebird done Completed.
Wenn Sie von diesem Skript eine Aufforderung "Press return to continue …" erhalten, werden alle mit dem Datenbankserver verbundenen VNC-Sitzungen beendet. Stellen Sie sicher, dass sich der Server in einer ruhigen Phase befindet und nicht während der normalen Betriebszeiten, wenn Sie diese Änderung vornehmen. Dies betrifft Suse Linux Enterprise 10, kann jedoch auch andere Linux-Distributionen betreffen. |
6. RestoreRootRunUser
Unter Firebird 1.5 gibt es zwei Versionen des Skripts restoreRootRunUser.sh
.
Das Präfix 'SS' steht für Super Server-Installationen und das Präfix 'CS' für Classic Server-Installationen.
Ab Firebird 2 lautet das Skript einfach "restoreRootRunUser.sh".
Dieses Skript muss als root ausgeführt werden. |
Dieses Skript stellt einfach das Installationsformat im alten Stil wieder her, bei dem der Firebird Super Server als Root-Benutzer und Gruppe ausgeführt wird.
7. ChangeGDSLibraryCompatibleLink
Das Skript changeGdsLibraryCompatibleLink.sh
ist nur bei Classic Server-Installationen verfügbar und wird verwendet, um den Symlink libgds.so
so zu ändern, dass er auf die entsprechende Bibliothek für die Installation verweist.
Es gibt zwei mögliche Bibliotheken, auf die der Symlink verweisen kann:
-
/opt/firebird/lib/libfbclient.so
für Client-Server-Anwendungen. -
/opt/firebird/lib/libfbembed.so
für Embedded-Server-Anwendungen.
Nach der Installation verweist der Symlink libgds.so
standardmäßig auf die Client-Server-Bibliothek. Wenn Sie also eine eingebettete Anwendung ausführen, müssen Sie dieses Skript ausführen, um stattdessen libgds.so
auf die eingebettete Bibliothek zu verweisen.
Dieses Skript muss als root ausgeführt werden. |
Das folgende Beispiel zeigt, wie dieses Skript verwendet wird, um vom eingebetteten Server zum Client-Server zu wechseln:
# cd /opt/firebird/bin # ./changeGdsCompatibleLibraryLink.sh Für klassische Server gibt es zwei optionale abwärtskompatible Clients Bibliotheken. Dies sind libfbclient.so und libfbembed.so. libfbclient.so) Ermöglicht Ihrem Client das Multithreading, muss jedoch über einen Server eine Verbindung zu einer Datenbank herstellen. libfbembed.so) Ermöglicht dem Client das direkte Öffnen der Datenbankdatei, unterstützt jedoch keinen Multithread-Zugriff Ihre aktuelle Einstellung ist: /usr/lib/libgds.so -> /opt/firebird/lib/libfbembed.so Which option would you like to choose (client|embed|remove) [client] client #
Die Standardoption ist client
, wodurch der Symlink zur Client-Server-Bibliothek neu erstellt wird. embed
erstellt den Symlink zum eingebetteten Server neu, während remove
den Symlink vollständig entfernt.
Es werden keine Meldungen angezeigt, die Sie über den Erfolg des Skripts informieren. Wenn Sie es jedoch erneut ausführen, werden Sie feststellen, dass die aktuelle Einstellung von der Einstellung abweichen sollte, die angezeigt wurde, als Sie das Skript zuvor ausgeführt haben.
Anhang A: Dokumentenhistorie
Der genaue Dateiversionsverlauf wird im Firebird-Dokumentations-Git-Repository aufgezeichnet; siehe https://github.com/FirebirdSQL/firebird-documentation
Revisionshistorie | |||
---|---|---|---|
0.1 |
22. Nov. 2004 |
ND |
Erstellt als Kapitel im Handbuch der Befehlszeilen-Dienstprogramme. |
1.0 |
19. Okt. 2009 |
ND |
Für Firebird 2 aktualisiert, geringfügige Änderungen an der Zeichensetzung vorgenommen und dann in ein eigenständiges Handbuch konvertiert. |
1.1 |
05. Jan. 2010 |
ND |
Rechtschreibkorrektur. |
1.2 |
27. Apr. 2010 |
ND |
Beim Ändern des DBA-Passworts wird das Startskript nicht mehr geändert. Andere geändert für Version 2.1 hinzugefügt. |
1.3 |
20. Jun. 2020 |
MR |
Konvertierung in AsciiDoc, geringfügige Bearbeitung von Texten |
1.3-de |
31. Jul. 2020 |
MR |
Übersetzung ins Deutsche. |
Anhang B: Lizenzhinweis
Der Inhalt dieser Dokumentation unterliegt der "Public Documentation License Version 1.0" (der “License”); die Dokumentation darf nur unter Respektierung dieser Lizenz genutzt werden. Kopien der Lizenz sind verfügbar unter https://www.firebirdsql.org/pdfmanual/pdl.pdf (PDF) und https://www.firebirdsql.org/manual/pdl.html (HTML).
Die Original-Dokumentation trägt den Titel Firebird Shell Scripts.
Der ursprüngliche Autor der Original-Dokumentation ist: Norman Dunbar.
Copyright © 2005-2020. Alle Rechte vorbehalten. Kontakt zum Original-Autor: NormanDunbar at users dot sourceforge dot net.
Mitwirkende: Norman Dunbar; Mark Rotteveel; Martin Köditz - siehe Dokumenthistorie.