Denken Sie daran, dass die Befehlszeile analysiert und Platzhalter ersetzt werden, BEVOR sie ausgeführt wird.
Wenn Sie den Benutzernamen angeben, kann der Befehl sudo ... die Datei sehen, da sie als root darauf zugreift.
Wenn Sie '*' eingeben, erweitert Ihre USER-Shell die Pfade auf die Pfade, die sie sehen kann, naja ... die Pfade, die es Ihrem aktuellen Benutzer ermöglichen, die Unterverzeichnisse zu durchsuchen.
Sie können versuchen, die Pfadzeichenfolge in SINGLE-Anführungszeichen einzuschließen, um eine Erweiterung zu verhindern. Ich bin nicht sicher, ob dies funktionieren wird, da die meisten Unix-Programme erwarten, dass die Shell Platzhalter erweitert und die Globbing-Aktion nicht selbst ausführt.
BEARBEITEN: Ein Gedanke, wie Sie Ihr Ziel erreichen, die Dateien mit den autorisierten Schlüsseln für alle Benutzer zu lesen:
sudo find /home -name "authorized_keys" -exec cat "{}" \; > all_the_data
Vielleicht grob, aber es wird funktionieren, da Sie die Dateisuche als root ausführen, nicht als Benutzer.
Ich vermute einen anderen Weg:
sudo 'find /home -name "authorized_keys" -print0 | xargs -0 cat' > all_the_data
Das ist schöner bei dem Prozess, da es alle Dateinamen ansammelt und dann 'Katzen' ... aber ich mag den ersten, kein spezielles Anführungszeichen erforderlich.
Die Anführungszeichen (einzeln oder auf andere Weise) um den gesamten Befehl sind aufgrund des Pipe-Befehls erforderlich. Sowohl der Befehl find als auch der Befehl xargs MÜSSEN als root ausgeführt werden. Ja, komplizierter als der erste.