Es stellt sich heraus, dass es möglich ist, dass locate.updatedb andere Dateisysteme indexiert, einschließlich des Netzwerks.
Der Haken ist, dass der Stamm des Dateisystems (und der Baum bis hin zu dem Inhalt, den Sie indizieren möchten) für Benutzer / Gruppe "nobody" lesbar sein muss.
Sie waren mit /etc/locate.rc auf dem richtigen Weg
Im Anschluss fand ich heraus, dass /usr/libexec/locate.updatedb nur find verwendet, um den Index zu erstellen.
Es durchläuft die Einträge in /etc/locate.rc FILESYSTEMS (zumindest in 10.6 ist dies standardmäßig nur hfs, wenn nicht gesetzt).
Die Manpage von find schlägt die Verwendung von "sysctl vfs" vor, um herauszufinden, was auf Ihrem Computer gültig ist. In meinem Fall:
sysctl vfs|grep mounted vfs.nfs has 1 mounted instance vfs.hfs has 3 mounted instances vfs.autofs has 3 mounted instances vfs.afpfs has 4 mounted instances
Einige schnelle Tests, um dies zu bestätigen:
prowler:~%% mount |grep Volumes/keen afp_1I6KyU4igzg00Q0vsj4E2G0H-1.2f0004fb on /Volumes/keen (afpfs, nodev, nosuid, mounted by keen) prowler:~%% touch /Volumes/keen/test-afpfs prowler:~%% find /Volumes/keen/ -name test-afpfs -fstype afpfs prowler:~%% find /Volumes/keen/test-afpfs -name test-afpfs -fstype afpfs /Volumes/keen/test-afpfs prowler:~%% find /Volumes/keen/test-afpfs -name test-afpfs -fstype hfs prowler:~%%
Für 10.6 ist afpfs für ein in AFP eingehängtes Dateisystem mindestens richtig.
Nun zum Scheitern für afpfs.
Wenn OSX (10.6) den AFP-Datenträger (gemountet über ein Anmeldeelement oder über Finder -> Go -> Verbinden mit dem Server - die herkömmlichen OSX-Mechanismen für AFP) einbindet, hängt es vom Benutzer als lesbar:
prowler:/Volumes/keen%% ls -ld /Volumes/keen drwx------ 6 keen keen 264 Dec 13 12:45 /Volumes/keen/
und der Versuch, dies manuell zu korrigieren, schlägt fehl:
prowler:/Volumes/keen%% sudo chmod a+rx /Volumes/keen prowler:/Volumes/keen%% ls -ld /Volumes/keen drwx------ 6 keen keen 264 Dec 13 12:52 /Volumes/keen/
Ich habe noch keine Problemumgehung gefunden (ich habe keine Autofaks ausprobiert, da diese Methode bei jeder OSX-Version in der Regel fehlerhaft ist ...).
HFS-Volumes (und vermutlich auch HFS + usw.), die gemountet werden, haben weder dieses Problem noch NFS-Volumes, die über das Festplatten-Dienstprogramm -> NFS-Mounts (10.6) geladen werden.
prowler:~%% mount |grep nfs murf:/backups on /Users/keen/backups (nfs, nodev, nosuid, automounted, nobrowse) prowler:~%% ls -ld /Users/keen/backups drwxrwxrwx 33 root wheel 2048 Dec 13 03:05 /Users/keen/backups/
Ich habe dies entdeckt, als ich versuchte, die Indexierung nur des afp-Mount zu testen:
prowler:/Volumes/keen%% grep FILESYSTE /etc/locate.rc FILESYSTEMS="afpfs" prowler:/Volumes/keen%% sudo /usr/libexec/locate.updatedbshell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied find: .: Permission denied
Beim Ausführen mit $ PWD außerhalb des afp-Mounts war dieser Fehler nicht aufgetreten:
prowler:~%% sudo /usr/libexec/locate.updatedb prowler:~%%
hatte aber auch keine Ergebnisse:
prowler:~%% locate test-afpfs prowler:~%%
Also die kurze Antwort, wie ich sie bisher gefunden habe - JA! Sie können locate finden, um Netzwerkvolumes unter OSX zu indizieren. NEIN, Sie können kein afp-Netzwerkvolume indizieren.