Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
100 6 Dateien: Aufzucht und Pflege<br />
locate ist so schnell, weil es nicht das Dateisystem absucht, sondern in einer<br />
»Datenbank« von Dateinamen nachschaut, die irgendwann vorher mit dem Programm<br />
updatedb aufgebaut wurde. Das bedeutet natürlich, dass es Dateien nicht<br />
erwischt, die seit der letzten Aktualisierung der Datenbank dazu gekommen sind,<br />
und umgekehrt die Namen von Dateien liefern kann, die seitdem gelöscht wurden.<br />
B<br />
Mit der Option »-e« können Sie locate dazu bringen, nur tatsächlich existierende<br />
Dateinamen zu liefern, aber den Geschwindigkeitsvorteil <strong>des</strong> Programms<br />
machen Sie damit zunichte.<br />
Das Programm updatedb baut die Datenbank für locate auf. Da dieser Vorgang<br />
einige Zeit dauern kann, sorgt Ihr Systemverwalter meist dafür, dass das passiert,<br />
wenn das System sonst nicht viel zu tun hat, auf ständig eingeschalteten Serversystemen<br />
zum Beispiel nachts.<br />
B<br />
Der dafür nötige Systemdienst cron wird in der Unterlage <strong>Linux</strong> für Fortgeschrittene<br />
ausführlich besprochen. Für jetzt mag genügen, dass die meisten<br />
<strong>Linux</strong>-Distributionen einen Mechanismus mitliefern, der dafür sorgt, dass<br />
updatedb regelmäßig aufgerufen wird.<br />
Als Systemverwalter können Sie konfigurieren, welche Verzeichnisse updatedb<br />
beim Aufstellen der Datenbank beachtet. Wie das im Detail passiert, ist distributionsabhängig:<br />
updatedb selbst liest keine Konfigurationsdatei, sondern übernimmt<br />
seine Konfigurationseinstellungen über Kommandozeilenargumente oder<br />
(zum Teil) Umgebungsvariable. Allerdings rufen die meisten Distributionen updatedb<br />
über ein Shellskript auf, das vorher eine Datei wie /etc/updatedb.conf oder<br />
/etc/sysconfig/locate einliest, in der zum Beispiel geeignete Umgebungsvariable<br />
gesetzt werden können.<br />
B<br />
<strong>Die</strong>ses Shellskript finden Sie zum Beispiel in /etc/cron.daily (Details sind<br />
distributionsabhängig).<br />
Sie können updatedb zum Beispiel mitteilen, welche Verzeichnisse es durchsuchen<br />
und welche es auslassen soll; das Programm erlaubt auch die Definiton von<br />
»Netz-Dateisystemen«, die von verschiedenen Rechnern verwendet werden und<br />
in deren Wurzelverzeichnissen Datenbanken geführt werden sollen, damit nicht<br />
jeder Rechner dafür seine eigene Datenbank aufbauen muss.<br />
B<br />
B<br />
B<br />
Eine wichtige Konfigurationseinstellung ist die <strong>des</strong> Benutzers, mit <strong>des</strong>sen<br />
Identität updatedb läuft. Dafür gibt es im wesentlichen zwei Möglichkeiten:<br />
• updatedb läuft mit den Rechten von root und kann so jede Datei in die<br />
Datenbank aufnehmen. Das heißt aber auch, dass Benutzer Dateinamen<br />
in Verzeichnissen ausspähen können, für die sie eigentlich gar<br />
keine Zugriffsrechte haben, zum Beispiel die Heimatverzeichnisse anderer<br />
Benutzer.<br />
• updatedb läuft mit eingeschränkten Rechten, etwa denen <strong>des</strong> Benutzers<br />
nobody. In diesem Fall landen nur diejenigen Dateinamen in der Datenbank,<br />
die in Verzeichnissen stehen, deren Inhalt nobody auflisten darf.<br />
Das Programm slocate – eine Alternative zum gewöhnlichen locate – umgeht<br />
dieses Problem, indem es außer dem Namen einer Datei auch noch<br />
Eigentümer, Gruppenzugehörigkeit und Zugriffsrechte in der Datenbank<br />
speichert und einen Dateinamen nur dann ausgibt, wenn der Benutzer, der<br />
slocate aufgerufen hat, tatsächlich Zugriff auf die betreffende Datei hat.<br />
Auch slocate verfügt über ein updatedb-Programm, das allerdings nur ein<br />
anderer Name für slocate selber ist.<br />
In vielen Fällen ist slocate so installiert, dass es auch unter dem Namen locate<br />
aufgerufen werden kann.<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH