Kapitel 10. Systemadministration

10.1. Wo befinden sich die Konfigurationsdateien für den Systemstart?
10.2. Wie kann ich am Einfachsten einen Benutzer hinzufügen?
10.3. Warum erhalte ich Meldungen wie root: not found, nachdem ich /etc/crontab geändert habe?
10.4. Wieso erhalte ich die Meldung you are not in the correct group to su root, wenn ich mit su zu root wechseln will?
10.5. Ich habe einen Fehler in der rc.conf oder einer der anderen Dateien für den Systemstart und jetzt kann ich sie nicht ändern, weil das Dateisystem „read-only“ ist. Was kann ich tun?
10.6. Wieso habe ich habe Probleme, meinen Drucker einzurichten?
10.7. Wie kann ich die Tastaturbelegung meines Systems korrigieren?
10.8. Wieso funktionieren die Benutzer-Quotas nicht richtig?
10.9. Unterstützt FreeBSD IPC-Grundfunktionen von System V?
10.10. Welchen Mail-Server kann ich an Stelle von Sendmail benutzen?
10.11. Was kann ich machen, wenn ich das Passwort für root vergessen habe?
10.12. Wie verhindere ich, dass das System mit Strg+Alt+Entf rebootet werden kann?
10.13. Wie kann ich DOS-Textdateien unter UNIX® verwenden?
10.14. Wie lade ich /etc/rc.conf und starte /etc/rc neu, ohne zu rebooten?
10.15. Ich wollte auf das aktuelle -STABLE aktualisieren, und plötzlich läuft auf dem System ein -BETAx, -RC oder -PRERELEASE! Was ist passiert?
10.16. Als ich versucht habe, einen neuen Kernel zu installieren, ist chflags(1) fehlgeschlagen. Was mache ich jetzt?
10.17. Ich kann die Systemzeit nicht um mehr als eine Sekunde verstellen. Was mache ich jetzt?
10.18. Warum braucht rpc.statd 256 MB Speicher?
10.19. Warum kann ich das Dateiattribut schg nicht löschen?
10.20. Was ist vnlru?
10.21. Was bedeuten die Zustände, die top für Speicherseiten ausgibt?
10.22. Wie viel freien Speicher hat mein System?
10.23. Was ist /var/empty?
10.24. Ich habe eben /etc/newsyslog.conf geändert. Wie kann ich das Ergebnis überprüfen?
10.25. Meine Systemuhr geht falsch. Wie kann ich die Zeitzone ändern?

10.1.

Wo befinden sich die Konfigurationsdateien für den Systemstart?

/etc/defaults/rc.conf (siehe rc.conf(5)) ist die primäre Konfigurationsdatei. Die Startskripten des Systems, wie /etc/rc und /etc/rc.d (siehe rc(8)) inkludieren diese Datei. Ändern Sie diese Datei nicht! Wenn Sie den Wert einer der in /etc/defaults/rc.conf gesetzten Variablen ändern wollen, kopieren Sie die entsprechende Zeile nach /etc/rc.conf und ändern die Zeile dort.

Wenn Sie zum Beispiel den mitgelieferten DNS-Server named(8) aktivieren wollen, können Sie das folgende Kommando eingeben:

# echo 'named_enable="YES"' >> /etc/rc.conf

Wenn Sie lokale Server starten wollen, müssen Sie die Shellskripten im Verzeichnis /usr/local/etc/rc.d/ ablegen. Die Dateien sollten als ausführbar markiert sein und die Dateiberechtigungen 555 besitzen.

10.2.

Wie kann ich am Einfachsten einen Benutzer hinzufügen?

Benutzen Sie den Befehl adduser(8) und für kompliziertere Fälle den Befehl pw(8).

Um einen Benutzer wieder zu löschen, können Sie den Befehl rmuser(8) benutzen. Sie können, wenn nötig, auch pw(8) benutzen.

10.3.

Warum erhalte ich Meldungen wie root: not found, nachdem ich /etc/crontab geändert habe?

Dies geschieht in der Regel, wenn sie die crontab des Systems verändern. Das ist aber nicht der richtige Weg, weil die crontab des Systems ein anderes Format hat, als die crontabs der Benutzer. Die crontab des Systems enthält ein zusätzliches Feld für den Benutzer, welcher das Kommando ausführt. cron(8) geht davon aus, das der Benutzername das auszuführenden Kommando ist. Da ein solches Kommando jedoch nicht existiert, wird diese Meldung angezeigt.

Geben Sie das folgende ein um die zusätzliche, fehlerhafte crontab zu löschen:

# crontab -r

10.4.

Wieso erhalte ich die Meldung you are not in the correct group to su root, wenn ich mit su zu root wechseln will?

Das ist ein Sicherheitsmerkmal Wenn Sie mit su zu root oder jedem anderen Account mit Super-User-Privilegien wechseln wollen, müssen Sie Mitglied der Gruppe wheel sein. Wenn es dieses Merkmal nicht gäbe, könnte jeder, der einen Account auf dem System hat und zufällig das Passwort für root erfährt, mit Super-User-Rechten auf das System zugreifen.

Um einem Benutzer zu erlauben, mit su root zu werden, müssen Sie ihn mit pw zur Gruppe wheel hinzufügen:

# pw groupmod wheel -m lisa

Das obige Beispiel würde den Benutzer lisa zur Gruppe wheel hinzufügen.

10.5.

Ich habe einen Fehler in der rc.conf oder einer der anderen Dateien für den Systemstart und jetzt kann ich sie nicht ändern, weil das Dateisystem read-only ist. Was kann ich tun?

Starten Sie das System mittels boot -s an der Loader-Eingabeaufforderung neu, um in den Single-User-Modus zu gelangen. Wenn Sie aufgefordert werden, den Pfadnamen der Shell einzugeben, drücken Sie einfach Enter. Geben Sie danach mount -urw / ein, um das Root-Dateisystem im Schreib/Lese-Modus zu mounten. Sie werden wahrscheinlich auch mount -a -t ufs ausführen müssen, um das Dateisystem mit Ihrem Lieblingseditor zu mounten. Wenn Ihr Lieblingseditor auf einem Netzwerklaufwerk liegt, müssen Sie entweder das Netzwerk von Hand konfigurieren oder einen Editor benutzen, der auf einem lokalen Laufwerk vorhanden ist, z.B. ed(1).

Wenn Sie einen bildschirmorientierten Editor wie zum Beispiel vi(1) oder emacs(1) benutzen wollen, werden Sie auch den Befehl export TERM=xterm ausführen müssen, damit diese Editoren die richtigen Einstellungen aus der Datenbank termcap(5) übernehmen.

Sobald Sie diese Schritte ausgeführt haben, können Sie den Fehler in /etc/rc.conf ganz normal beheben. Die Fehlermeldungen, die unmittelbar nach den Startmeldungen des Kernels angezeigt wurden, sollten die Nummer der Zeile mit dem Fehler melden.

10.6.

Wieso habe ich habe Probleme, meinen Drucker einzurichten?

Lesen Sie zur Problembehandlung das Kapitel Drucken im Handbuch.

10.7.

Wie kann ich die Tastaturbelegung meines Systems korrigieren?

Informationen dazu finden Sie im Kapitel Lokalisierung des Handbuchs, insbesondere im Abschnitt Einrichten der Konsole.

10.8.

Wieso funktionieren die Benutzer-Quotas nicht richtig?

  1. Es kann sein, dass der Kernel nicht für den Einsatz von Quotas konfiguriert ist. In diesem Fall müssen Sie folgende Zeile in die Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen:

    options QUOTA

    Weitere Informationen zum Einsatz von Quotas finden Sie im Abschnitt Disk Quotas des Handbuchs.

  2. Benutzen Sie keine Quotas für /.

  3. Erstellen Sie die Quotas-Datei in dem Dateisystem, für das die Quotas gelten sollen:

    DateisystemQuotas-Datei
    /usr/usr/admin/quotas
    /home/home/admin/quotas
    ......

10.9.

Unterstützt FreeBSD IPC-Grundfunktionen von System V?

Ja, FreeBSD unterstützt IPC im Stil von System V einschließlich gemeinsamen Speicher, Nachrichten und Semaphoren bereits mit dem GENERIC-Kernel. Wenn Sie einen angepassten Kernel verwenden, können Sie die für Unterstützung die Kernelmodule sysvshm.ko, sysvsem.ko und sysvmsg.ko laden. Alternativ können Sie die folgenden Zeilen in die Kernelkonfigurationsdatei aufnehmen:

options    SYSVSHM          # enable shared memory
options    SYSVSEM          # enable for semaphores
options    SYSVMSG          # enable for messaging

Danach kompilieren und installieren Sie den neuen Kernel.

10.10.

Welchen Mail-Server kann ich an Stelle von Sendmail benutzen?

Der Sendmail Server ist der voreingestellte Mail-Server unter FreeBSD. Sie können ihn aber problemlos durch einen anderen MTA aus der Ports-Sammlung ersetzen, z.B. mail/exim, mail/postfix, oder mail/qmail. Diskussionen über die Vor- und Nachteile der einzelnen MTAs finden Sie auf den Mailinglisten.

10.11.

Was kann ich machen, wenn ich das Passwort für root vergessen habe?

Keine Panik! Starten Sie das System neu und geben Sie boot -s an der Eingabeaufforderung Boot: ein, um in den Single-User-Modus zu gelangen. Bei der Frage, welche Shell benutzt werden soll, drücken Sie einfach Enter. Nun erscheint die Eingabeaufforderung #. Geben Sie mount -urw / ein, um das Root-Dateisystem für Lese- und Schreibzugriffe zu mounten und dann mount -a um alle Dateisysteme zu mounten. Mit passwd root können Sie das Passwort für root ändern und mit exit(1) können Sie mit dem Booten fortfahren.

Anmerkung:

Wenn Sie immer noch dazu aufgefordert werden, das Passwort für root beim Betreten des Single-User-Modus einzugeben, bedeutet das, dass die Konsole in /etc/ttys als insecure markiert wurde. In diesem Fall ist es notwendig, von einem FreeBSD Installationsmedium zu booten, die Option Live CD oder Shell auszuwählen und die oben beschriebenen Befehle einzugeben. Mounten Sie die entsprechende Partition und wechseln Sie mit chroot in die Partition. Ersetzen Sie bspw. mount -urw / durch mount /dev/ada0p1 /mnt; chroot /mnt falls eine solche Partition auf dem System existiert.

Anmerkung:

Wenn Sie die Root-Partition im Single-User-Modus nicht mounten können, liegt es möglicherweise daran, dass die Partitionen verschlüsselt sind und es damit unmöglich ist, sie ohne die dazugehörigen Schlüssel zu mounten. Für weitere Informationen lesen Sie den Abschnitt über verschlüsselte Partitionen im FreeBSD Handbuch.

10.12.

Wie verhindere ich, dass das System mit Strg+Alt+Entf rebootet werden kann?

Falls Sie syscons(4) (der Standard-Treiber für die Konsole) benutzen, fügen Sie folgende Zeile in die Kernelkonfigurationsdatei ein und bauen und installieren Sie einen neuen Kernel:

options SC_DISABLE_REBOOT

Alternativ kann die folgende sysctl(8)-Variable gesetzt werden, ohne dass Sie das System dazu neu starten oder einen angepassten Kernel erstellen müssen:

# sysctl hw.syscons.kbd_reboot=0

Anmerkung:

Die beiden oben genannten Methoden schließen sich gegenseitig aus: Diese sysctl(8)-Variable existiert nicht, wenn Sie einen Kernel mit der Option SC_DISABLE_REBOOT bauen.

10.13.

Wie kann ich DOS-Textdateien unter UNIX® verwenden?

Benutzen Sie diesen perl(1)-Befehl:

% perl -i.bak -npe 's/\r\n/\n/g' file(s)

Wobei file(s) eine oder mehrere zu verarbeitende(n) Datei(en) ist/sind. Die Änderungen erfolgen in der Originaldatei, die zuvor mit der Erweiterung .bak gesichert wird.

Alternativ können Sie den Befehl tr(1) benutzen:

% tr -d '\r' < dos-text-file > unix-file

dos-text-file ist die Datei, die den Text im DOS-Format enthält und unix-file wird die konvertierte Ausgabe enthalten. Diese Möglichkeit könnte etwas schneller sein, als die Benutzung von perl.

Die Verwendung von converters/dosunix aus der Ports-Sammlung stellt eine weitere Möglichkeit dar, DOS-Textdateien neu zu formatieren. Konsultieren Sie die Dokumentation für weitere Informationen.

10.14.

Wie lade ich /etc/rc.conf und starte /etc/rc neu, ohne zu rebooten?

Gehen Sie in den Single-User-Modus und dann zurück in den Multi-User-Modus:

# shutdown now
# return
# exit

10.15.

Ich wollte auf das aktuelle -STABLE aktualisieren, und plötzlich läuft auf dem System ein -BETAx, -RC oder -PRERELEASE! Was ist passiert?

Kurze Antwort: Das ist nur ein anderer Name. RC ist die Abkürzung für Release Candidate. Es bedeutet, dass ein neues Release bevorsteht. PRERELEASE bedeutet bei FreeBSD, dass der Quellcode zur Vorbereitung auf ein Release ingefroren wurde (in einigen Releases wurde -BETA anstelle von -PRERELEASE verwendet).

Ausführliche Antwort: Bei FreeBSD gibt es zwei Quellen für Releases. Die Major Releases wie 9.0-RELEASE werden aus dem aktuellen Stand des Hauptzweiges der Entwicklung (besser bekannt als -CURRENT) erzeugt. Minor Releases wie 6.3-RELEASE oder 5.2-RELEASE stammen aus dem aktiven -STABLE Zweig. Seit 4.3-RELEASE gibt es nun auch einen eigenen Zweig für jede Release, der für die Leute gedacht ist, die ein sehr konservativ weiterentwickeltes System benötigen (normalerweise nur Sicherheitsaktualisierungen).

Bevor in einem Zweig ein Release erfolgt, muss in diesem Zweig ein bestimmter Prozess ablaufen. Ein Teil dieses Prozesses ist der code freeze, der Stop der Weiterentwicklung. Sobald dieser Schritt erfolgt ist, wird der Name des Zweiges geändert, um anzuzeigen, dass demnächst ein Release erfolgen wird. Wenn der Zweig zum Beispiel 6.2-STABLE genannt wurde, wird der Name in 6.3-PRERELEASE geändert, um dies zu verdeutlichen. Weiterhin ist das ein Zeichen, dass jetzt besonders intensiv getestet werden sollte. In dieser Phase können Fehler im Quellcode noch korrigiert werden. Wenn der Quellcode so weit gereift ist, dass ein Release erstellt werden kann, wird der Name in 6.3-RC geändert, um genau dies anzuzeigen. In dieser Phase können nur noch extrem wichtige Korrekturen aufgenommen werden. Sobald das Release (in diesem Beispiel 6.3-RELEASE) erfolgt ist, wird der Zweig in 6.3-STABLE umbenannt.

Weitere Informationen über Versionsnummern und die verschiedenen Entwicklungszweige enthält der Artikel Release Engineering.

10.16.

Als ich versucht habe, einen neuen Kernel zu installieren, ist chflags(1) fehlgeschlagen. Was mache ich jetzt?

Kurze Antwort: die Sicherheitseinstellung (der securelevel) ist größer als 0. Sie müssen das System im Single-User-Modus starten, um den Kernel zu installieren.

Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 0 ist, erlaubt es FreeBSD nicht, die Systemeinstellungen zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen:

# sysctl kern.securelevel

Sie können die Sicherheitseinstellung im Mehrbenutzer-Modus nicht verringern. Sie müssen das System im Single-User-Modus starten, um den Kernel zu installieren oder den Securelevel in /etc/rc.conf zu ändern und anschließend das System neu starten. Lesen Sie Manualpage von init(8) für weitere Details zu securelevel. Zusätzliche Informationen zu /etc/rc.conf finden Sie in /etc/defaults/rc.conf und der Manualpage rc.conf(5).

10.17.

Ich kann die Systemzeit nicht um mehr als eine Sekunde verstellen. Was mache ich jetzt?

Kurze Antwort: Die Sicherheitseinstellung (der securelevel) ist größer als 1. Sie müssen das System neu starten und die Systemzeit im Single-User-Modus verstellen.

Ausführliche Antwort: Wenn die Sicherheitseinstellung größer als 1 ist, erlaubt es FreeBSD nicht, die Systemzeit zu ändern. Um den aktuellen Securelevel zu ermitteln, können Sie das folgende Kommando benutzen:

# sysctl kern.securelevel

Sie können die Sicherheitseinstellung im Mehrbenutzer-Modus nicht verringern. Sie müssen das System im Single-User-Modus starten, um die Systemzeit oder den Securelevel in /etc/rc.conf zu ändern und anschließend das System neu starten. Lesen Sie Manualpage von init(8) für weitere Details zu securelevel. Zusätzliche Informationen zu /etc/rc.conf finden Sie in /etc/defaults/rc.conf und der Manualpage rc.conf(5).

10.18.

Warum braucht rpc.statd 256 MB Speicher?

Nein, das Programm hat kein Speicherleck und es verbraucht auch nicht 256 MB Speicher. rpc.statd projiziert nur einen übertrieben großen Speicherbereich in seinen eigenen Adressraum. Von einem rein technischen Standpunkt aus ist das nichts verwerfliches, allerdings verwirrt es Programme wie top(1) und ps(1).

rpc.statd(8) projiziert seine Statusdatei (die in /var liegt) in seinen Adressraum. Um die Probleme zu vermeiden, die bei einer Vergrößerung dieser Projektion entstehen könnten, wird gleich ein möglichst großer Speicherbereich benutzt. Dies kann man sehr schön im Quellcode sehen: Die Längenangabe beim Aufruf von mmap(2) ist 0x10000000, ein sechzehntel des Adressraums bei IA32, oder genau 256 MB.

10.19.

Warum kann ich das Dateiattribut schg nicht löschen?

Sie betreiben das System mit einer erhöhten Sicherheitsstufe. Senken Sie die Sicherheitsstufe und versuchen Sie es dann noch einmal. Weitere Informationen erhalten Sie im FAQ Eintrag über Sicherheitsstufen und in der Manualpage init(8).

10.20.

Was ist vnlru?

vnlru schreibt vnodes auf Platte und gibt sie wieder frei, falls das System den Grenzwert kern.maxvnodes erreicht. Dieser Thread des Kernel tut meistens gar nichts und wird nur aktiv, wenn Sie extrem viel RAM haben und gleichzeitig auf viele zehntausende kleine Dateien zugreifen.

10.21.

Was bedeuten die Zustände, die top für Speicherseiten ausgibt?

  • Active: Seiten, die vor Kurzem benutzt wurden.

  • Inactive: Seiten, die länger nicht benutzt wurden.

  • Cache: Meistens Seiten, die vorher im Zustand Inactive waren und noch gültige Daten enthalten. Diese Seiten können sofort in ihrem alten Kontext oder in einem neuen Kontext verwendet werden. Wenn eine Seite unverändert (clean) ist, kann ein Zustandswechsel direkt von Active nach Cache erfolgen. Ob dieser Zustandswechsel möglich ist, wird durch die Seitenersetzungsstrategie bestimmt, die der Entwickler des VM-Systems festgelegt hat.

  • Free: Seiten, die keine Daten enthalten. Diese Seiten können sofort benutzt werden, wenn Seiten im Zustand Cache nicht benutzt werden können. Seiten im Zustand Free können auch während eines Interrupts angefordert werden.

  • Wired: Seiten, die fest im Speicher liegen und nicht ausgelagert werden können. Normalerweise werden solche Seiten vom Kernel benutzt, manchmal werden Sie aber auch für spezielle Zwecke von Prozessen verwendet.

Seiten im Zustand Inactive werden oft auf Plattenspeicher geschrieben (sozusagen ein sync des VM-Systems). Wenn die CPU erkennen kann, das eine Seite unmodifiziert (clean) ist, kann auch eine Active-Seite auf den Plattenspeicher ausgeschrieben werden. In bestimmten Situationen ist es von Vorteil, wenn ein Block von VM-Seiten, unabhängig von seinem Zustand, ausgeschrieben werden kann. Die Inactive-Liste enthält wenig benutzte Seiten, die ausgeschrieben werden könnten. Seiten im Zustand Cached sind schon ausgeschrieben und stehen Prozessen für die Verwendung im alten oder in einem neuen Kontext zur Verfügung. Seiten im Zustand Cache sind nicht ausreichend geschützt und können während Unterbrechungen nicht benutzt werden.

Die eben beschriebene Behandlung von Speicherseiten kann durch weitere Zustände (wie das Busy-Flag) verändert werden.

10.22.

Wie viel freien Speicher hat mein System?

Es gibt verschiedene Arten von freiem Speicher. Eine Art ist die Speichermenge, die sofort, ohne etwas auszulagern, zur Verfügung steht. Dies ist ungefähr die kumulierte Größe von Inactive und Free. Der gesamte VM-Bereich ist eine weitere Art des freien Speichers. Die Betrachtung ist komplex, hängt aber von der Größe des Swap-Bereichs und der Größe des Arbeitsspeichers ab. Es gibt weitere Definitionen für freien Speicher, die aber alle relativ nutzlos sind. Wichtig ist hingegen, dass wenig Seiten ausgelagert werden (paging) und der Swap-Bereich ausreichend groß ist.

10.23.

Was ist /var/empty?

Das Verzeichnis /var/empty wird von sshd(8) benötigt, wenn es mit Privilege Separation ausgeführt wird. Das Verzeichnis /var/empty ist leer, gehört root und ist durch das Dateiattribut schg geschützt.

10.24.

Ich habe eben /etc/newsyslog.conf geändert. Wie kann ich das Ergebnis überprüfen?

Um zu sehen wie newsyslog(8) reagiert, verwenden Sie das folgende Kommando:

% newsyslog -nrvv

10.25.

Meine Systemuhr geht falsch. Wie kann ich die Zeitzone ändern?

Benutzen Sie tzsetup(8).

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.