Kapitel 10. Systemadministration
Zurück |  | Weiter

## 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 meine crontab geändert habe?
10.4. Wieso meldet mir su(1) you are not in the correct group to su root, wenn ich mit su root werden 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 erhalte ich beim Start des Systems Meldungen wie unknown: <PNP0303> can't assign resources?
10.9. Wieso funktionieren die Benutzer-Quotas nicht richtig?
10.10. Unterstützt FreeBSD IPC-Grundfunktionen von System V?
10.11. Welchen Mail-Server kann ich an Stelle von sendmail benutzen?
10.12. Was kann ich machen, wenn ich das Rootpasswort vergessen habe?
10.13. Wie verhindere ich, dass das System mit Ctrl+Alt+Delete rebootet werden kann?
10.14. Wie kann ich Textdateien von DOS Systemen auf UNIX® Systemen verwenden?
10.15. Wie beende ich Prozesse namentlich?
10.16. Warum nervt su(1) mich damit, dass ich nicht in der ACL von root bin?
10.17. Wie deinstalliere ich Kerberos?
10.18. Wie füge ich Pseudo-Terminals zum System hinzu?
10.19. Wie lade ich /etc/rc.conf und starte /etc/rc neu, ohne zu rebooten?
10.20. Ich wollte auf das aktuelle -STABLE updaten, und plötzlich läuft hier ein -BETAx, -RC oder -PRERELEASE! Was ist passiert?
10.21. Als ich versucht habe, einen neuen Kernel zu installieren, ist das chflags(1) fehlgeschlagen. Was mache ich jetzt?
10.22. Ich kann die Systemzeit nicht um mehr als eine Sekunde verstellen. Was mache ich jetzt?
10.23. Warum braucht rpc.statd(8) 256 MB Speicher?
10.24. Warum kann ich das Dateiattribut schg nicht löschen?
10.25. Warum funktioniert die .shosts Authentifizierung von SSH in neueren Versionen von FreeBSD nicht mehr?
10.26. Was ist vnlru?
10.27. Was bedeuten die Zustände, die top für Speicherseiten ausgibt?
10.28. Wie viel freien Speicher hat mein System?
10.29. Ich kann /var/empty nicht löschen!

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, fügen Sie die entsprechende Zeile in die Datei `/etc/rc.conf` ein und ändern die Zeile dort.

Wenn Sie zum Beispiel den mitgelieferten DNS-Server named(8) aktivieren wollen, müssen Sie lediglich das folgende Kommando eingeben:

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

Wenn Sie lokale Server starten wollen, müssen Sie passende Shellskripten im Verzeichnis `/usr/local/etc/rc.d/` ablegen. Die Dateien müssen 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). Benutzen Sie den Befehl rmuser(8), um einen Benutzer wieder zu löschen. Sie können, wenn nötig. auch pw(8) benutzen.
10.3. | Warum erhalte ich Meldungen wie root: not found, nachdem ich meine `crontab` geändert habe?

Die übliche Ursache dieses Problems ist, dass Sie die crontab des Systems (`/etc/crontab`) geändert und dann mit crontab(1) installiert haben:

`#` `crontab /etc/crontab`

Diese Vorgehensweise ist falsch. Die crontab des Systems hat ein anderes Format als die crontabs für die einzelnen Benutzer, die mit crontab(1) aktualisiert werden (genauere Informationen über die Unterschiede erhalten Sie in crontab(5)).

Wenn Sie so vorgegangen sind, ist die zweite crontab einfach nur eine Kopie von `/etc/crontab`, allerdings im falschen Format. Löschen Sie sie mit dem folgenden Befehl:

`#` `crontab -r`

Wenn Sie `/etc/crontab` wieder ändern müssen, sollten Sie einfach gar nichts tun, um cron(8) über die Änderung zu informieren, er erkennt die Änderung automatisch.

Wenn Sie ein Kommando jeden Tag, jede Woche oder jeden Monat ausführen lassen wollen, ist es wahrscheinlich einfacher, wenn Sie entsprechende Shell-Scripte in `/usr/local/etc/periodic` ablegen. Diese werden dann von periodic(8) zusammen mit den anderen regelmäßigen `cron` Tätigkeiten ausgeführt.

Der eigentliche Grund für den Fehler ist die Tatsache, dass die crontab des Systems ein zusätzliches Feld enthält; dieses Feld gibt an, mit welcher Benutzerkennung der Befehl ausgeführt werden soll. In der mitgelieferten crontab ist das bei allen Einträgen die Benutzerkennung `root`. Wenn diese Datei als die crontab des Benutzers `username` (die nicht mit der crontab des Systems identisch ist) verwendet wird, hält cron(8) die Zeichenkette `root` für den Namen des zu startenden Programmes, aber dieses Programm gibt es nicht.

10.4. | Wieso meldet mir su(1) you are not in the correct group to su root, wenn ich mit `su` `root` werden will?

Das ist ein Sicherheits-Feature. Wenn Sie mit `su` zum Account `root` (oder jedem anderen Account mit Super-User-Privilegien) wechseln wollen, müssen Sie ein Mitglied der Gruppe `wheel` sein. Wenn es dieses Feature 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. Durch dieses Feature ist die Lage anders, wenn Sie nicht Mitglied von `wheel` sind, können Sie nicht einmal versuchen, dass Passwort einzugeben.

Um einem Benutzer zu erlauben, mit `su` `root` zu werden, müssen Sie ihn nur in die Gruppe `wheel` eintragen.

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=cons25` ausführen müssen, damit diese Editoren die richtigen Einstellungen aus der Datenbank termcap(5) übernehmen.

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

10.6. | Wieso habe ich habe Probleme, meinen Drucker einzurichten?

Lesen sie den Handbucheintrag über Drucker. Es sollte die meisten Ihrer Probleme behandeln.

Einige Drucker benötigen einen auf dem Rechner laufenden Treiber, um drucken zu können. Diese so genannten „WinPrinter“ oder „GDI-Drucker“ werden von FreeBSD nicht unterstützt und an diesem Zustand wird sich wohl auch nichts ändern. Wenn Ihr Drucker nicht unter DOS oder Windows® verwendet werden kann, handelt es sich um einen „WinPrinter“ und wird in der Regel auch nicht unter FreeBSD funktionieren. Ihre einzige Chance, einen dieser Drucker benutzen können, ist der Port `ports/print/pnm2ppa`.

10.7. | Wie kann ich die Tastaturbelegung meines Systems korrigieren?
| Informationen dazu finden Sie im Kapitel länderspezifische Einstellungen des Handbuchs, insbesondere im Abschnitt Konfiguration der Konsole.
10.8. | Wieso erhalte ich beim Start des Systems Meldungen wie unknown: <PNP0303> can't assign resources?

Die nachfolgende Erklärung stammt aus einer Mail auf der Mailingliste FreeBSD-CURRENT.

Die Geräte, für die „can't assign resources“-Meldungen ausgegeben werden, sind „Legacy ISA“Geräte, für die ein nicht PNP-fähiger Treiber in den Kernel eingebunden wurde. Dabei handelt es sich um Geräte wie den Tastaturkontroller, den programmierbaren Interrupt-Kontroller und diverse andere Standardkomponenten. Die Ressourcen können nicht zugewiesen werden, weil es schon einen Treiber gibt, der diese Ressourcen benutzt.

| --Garrett Wollman `<wollman@FreeBSD.org>`, 24 April 2001

10.9. | Wieso funktionieren die Benutzer-Quotas nicht richtig?

1. Es kann sein, dass Ihr Kernel nicht für den Einsatz von Quotas konfiguriert ist. Damit Sie mit Quotas arbeiten können, müssen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen:

   options QUOTA

   Weitere Informationen zum Einsatz von Quotas finden Sie im entsprechenden Abschnitt 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, z.B.:

   File System | Quota file
   --- | ---
   `/usr` | `/usr/admin/quotas`
   `/home` | `/home/admin/quotas`
   … | …

10.10. | 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, müssen Sie die folgenden Zeilen in Ihre Kernelkonfigurationsdatei einfügen:

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

Danach kompilieren und installieren Sie den neuen Kernel.

10.11. | Welchen Mail-Server kann ich an Stelle von sendmail benutzen?

sendmail ist zwar der Mail-Server, der bei FreeBSD standardmäßig installiert wird, aber Sie können Ihn problemlos durch einen anderen MTA (z.B. aus den Ports) ersetzen.

In der Port-Sammlung gibt es bereits viele verschiedene MTAs, `mail/exim`, `mail/postfix`, `mail/qmail`, sowie `mail/zmailer` sind einige der beliebteren Alternativen.

Konkurrenz belebt das Geschäft und die Tatsache, dass Sie die Qual der Wahl haben, ist ein Vorteil. Daher sollten Sie Fragen wie „Ist sendmail besser als qmail?“ besser nicht auf den Mailinglisten stellen. Wenn Sie dieses Thema interessiert, sollten sie zunächst die Archive durchsehen. Die Vorteile und Nachteile jedes einzelnen der verfügbaren MTAs sind schon mehrere Male bis zur Erschöpfung diskutiert worden.

10.12. | Was kann ich machen, wenn ich das Rootpasswort vergessen habe?

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

### Anmerkung:

Wenn Sie immer noch dazu aufgefordert werden, das `root` Passwort beim Betreten des Single-User-Modus einzugeben, bedeutet das, dass die Konsole als `insecure` in `/etc/ttys` markiert wurde. In diesem Fall ist es notwendig, von einem FreeBSD Installationsmedium zu booten, die Fixit-Shell auszuwählen und die oben beschriebenen Befehle einzugeben.

### Anmerkung:

Wenn Sie ihre root Partition im Single-User-Modus nicht mounten können, liegt es möglicherweise daran, dass die Partionen verschlüsselt sind und es damit unmöglich ist, sie ohne die dazugehörigen Schlüssel zu mounten. Ihre Chancen hängen von der jeweiligen Implementierung ab. Für weitere Informationen lesen Sie den Abschnittt über verschlüsselte Partitionen im FreeBSD Handbuch.

10.13. | Wie verhindere ich, dass das System mit Ctrl+Alt+Delete rebootet werden kann?

Falls Sie syscons(4) (der Standard-Treiber für die Konsole) benutzen, fügen Sie folgende Zeile in Ihre Kernelkonfigurationsdatei ein:

options SC_DISABLE_REBOOT

Alternativ können Sie auch die folgende sysctl(8)-Variable setzen (die aktiviert wird, ohne dass Sie Ihr System dazu neu starten oder einen angepassten Kernel erstellen müssen):

`#` `sysctl hw.syscons.kbd_reboot=0`

### Anmerkung:

Die beiden oben genannten Methoden schliessen sich gegenseitig aus: sysctl(8) existiert nicht, wenn Sie ihren Kernel mit der Option `SC_DISABLE_REBOOT` bauen.

Falls Sie den pcvt(4) Konsolentreiber verwenden, fügen Sie die folgende Zeile in die Kernelkonfigurationsdatei hinzu und bauen Sie einen neuen Kernel:

options PCVT_CTRL_ALT_DEL

10.14. | Wie kann ich Textdateien von DOS Systemen auf UNIX® Systemen verwenden?

Benutzen Sie diesen Perl-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 des Ports `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.15. | Wie beende ich Prozesse namentlich?
| Benutzen Sie pkill(1).
10.16. | Warum nervt su(1) mich damit, dass ich nicht in der ACL von `root` bin?
| Der Fehler stammt vom verteilten Authentifizierungssystem Kerberos. Das Problem ist nicht ernsthaft, aber störend. Sie können entweder su mit der Option `-K` benutzen, oder Kerberos deinstallieren, wie in der nächsten Frage beschrieben.
10.17. | Wie deinstalliere ich Kerberos?
| Um Kerberos aus dem System zu entfernen, müssen Sie die `base`-Distribution der von Ihnen benutzten RELEASE neu installieren. Wenn Sie die CD-ROM besitzen, können Sie sie mounten (wir nehmen an, unter `/cdrom`) und folgende Befehle ausführen: `#` `cd /cdrom/base` `#` `./install.sh` Alternativ können Sie mit der Option `NO_KERBEROS` in der `/etc/make.conf` ein make world durchführen.
10.18. | Wie füge ich Pseudo-Terminals zum System hinzu?

Wenn Sie viele Benutzer von `telnet`, `ssh`, X oder `screen` haben, werden Ihnen eventuell die Pseudo-Terminals ausgehen. Standardmässig unterstützt FreeBSD 6.2 und vorherige Versionen 256 Pseudo-Terminals, während FreeBSD 6.3 und höher 512 Pseudo-Terminals zur Verfügung stellt.

### Tipp:

Wenn nötig, können mehr Pseudo-Terminals hinzugefügt werden. Allerdings muss dafür die C-Blibliothek, der Kernel und `/etc/ttys` erweitert werden. Zum Beispiel erhöht http://www.freebsd.org/~jhb/patches/pty_1152.patch die Anzahl an Pseudo-Terminals auf 1152. Beachten Sie, dass die Erweiterung nur für FreeBSD 6.3 oder höher problemlos funktioniert.

10.19. | 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. Geben Sie auf der Konsole folgendes ein: `#` `shutdown now` (Hinweis: ohne -r oder -h) `#` `return` `#` `exit`
10.20. | Ich wollte auf das aktuelle -STABLE updaten, und plötzlich läuft hier ein -BETA`x`, -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 eine neue Release bevorsteht. Und -PRERELEASE bedeutet bei FreeBSD normalerweise, dass die Sourcen zur Vorbereitung auf eine Release „eingefroren“ wurden (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 7.0-RELEASE und 8.0-RELEASE werden aus dem aktuellen Stand des Hauptzweiges der Entwicklung (besser und kürzer als -CURRENT bekannt) erzeugt. Minor Releases wie 6.3-RELEASE oder 5.2-RELEASE stammen aus dem aktiven -STABLE Zweig. Seit 4.3-RELEASE gibt es 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 (im Normalfall also nur Updates aus dem Bereich Sicherheit).

Bevor in einem Zweig eine 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 eine 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 Sourcecode noch korrigiert werden. Wenn der Sourcecode so weit „gereift“ ist, dass eine 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 die 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.21. | Als ich versucht habe, einen neuen Kernel zu installieren, ist das chflags(1) fehlgeschlagen. Was mache ich jetzt?

Kurze Antwort: Ihre Sicherheitseinstellung (der `securelevel`) ist wahrscheinlich größer als 0. Sie müssen das System neu starten und den Kernel im Single-User-Modus installieren.

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

`#` `sysctl kern.securelevel`

Sie können die Sicherheitseinstellung nicht verringern. Sie müssen das System neu starten und den Kernel im Single-User-Modus installieren oder die Sicherheitseinstellung in `/etc/rc.conf` ändern und dann das System neu starten. Weitere Details zu `securelevel` erhalten Sie in init(8), weitere Informationen zur rc.conf erhalten Sie in `/etc/defaults/rc.conf` und rc.conf(5).

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

Kurze Antwort: Ihre Sicherheitseinstellung (der `securelevel`) ist wahrscheinlich 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 Ihnen 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 nicht verringern, Sie müssen das System neu starten und die Systemzeit im Single-User-Modus ändern oder die Sicherheitseinstellung in `/etc/rc.conf` ändern und dann das System neu starten. Weitere Details zu `securelevel` erhalten Sie in init(8), weitere Informationen zur `rc.conf` erhalten Sie in `/etc/defaults/rc.conf` und rc.conf(5).

10.23. | Warum braucht rpc.statd(8) 256 MB Speicher?

Nein, das Programm hat keinen Fehler 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 Sourcecode sehen: Die Längenangabe beim Aufruf von mmap(2) ist `0x10000000`, ein sechzehntel des Adressraums bei IA32, oder genau 256 MByte.

10.24. | Warum kann ich das Dateiattribut `schg` nicht löschen?
| Sie betreiben Ihr 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 Online-Hilfe init(8).
10.25. | Warum funktioniert die `.shosts` Authentifizierung von SSH in neueren Versionen von FreeBSD nicht mehr?

Die `.shosts` Authentifizierung funktioniert nicht mehr, weil ssh(1) in neueren Versionen von FreeBSD nicht mehr SUID-`root` installiert wird. Um dieses Problem zu „lösen“, gibt es die folgenden Möglichkeiten:

- Um das Problem für immer zu lösen, müssen Sie in `/etc/make.conf` die Variable `ENABLE_SUID_SSH` auf `true` setzen und danach ssh(1) neu übersetzen (oder `make `world``) ausführen.

- Übergangsweise können Sie auch die Dateirechte von `/usr/bin/ssh` auf `4555` setzen, indem Sie den Befehl `chmod 4555 /usr/bin/ssh` als `root` ausführen. Fügen Sie anschließend ``ENABLE_SUID_SSH` =true` in die Datei `/etc/make.conf` ein, damit diese Änderung erhalten bleibt, wenn Sie das nächste Mal `make `world`` ausführen.

10.26. | Was ist `vnlru`?
| `vnlru` schreibt vnodes auf Platte und gibt sie wieder frei, falls das System die 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.27. | Was bedeuten die Zustände, die `top` für Speicherseiten ausgibt?

Speicherseiten werden vom Kernel in verschiedenen Listen verwaltet:

- `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 das Busy-Flag) verändert werden.

10.28. | 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. 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.29. | Ich kann `/var/empty` nicht löschen!

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

Wir empfehlen Ihnen, das Verzeichnis zu belassen. Sollten Sie es aber trotzdem löschen wollen, müssen Sie zuerst das `schg`-Attribut entfernen. Schauen Sie sich dazu die Hilfeseite chflags(1) an und beachten Sie die Antwort auf die Frage wie das `schg`-Attribut entfernt wird.

Zurück |  | Weiter
Kapitel 9. Platten, Dateisysteme und Boot Loader | Zum Anfang | Kapitel 11. Das X Window System und virtuelle Konsolen

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>.