Versuchen Sie es
getent passwd "$uid" | cut -d: -f1
Sie könnten dieses kleine Liedchen genießen.
$ id -nu [number]
3.17.3-1-ARCH #1 SMP PREEMPT Freitag, 14. November 22:56:01 MEZ 2014 i686 GNU/Linux
Ich kann bestätigen, dass es unter Arch Linux einen entsprechenden Benutzernamen zurückgibt, sofern vorhanden. Ich kann auch bestätigen, dass es unter Ubuntu nicht funktioniert, wenn es als normaler Benutzer ausgeführt wird, obwohl ich dies nicht als Superuser getestet habe. Es funktioniert auch nicht unter Alpine Linux. Möglicherweise verhindert eine Sicherheitsfunktion, dass dies auf einigen Systemen funktioniert.
ls
führt diese Suche bereits durch. Sie können eine Suche nach Benutzerinformationen über die Befehlszeile mit getent passwd
durchführen .
Wenn ls
eine Benutzer-ID anstelle eines Benutzernamens anzeigt, weil es keinen Benutzer mit diesem Namen gibt. Dateisysteme speichern Benutzer-IDs, keine Benutzernamen. Wenn Sie ein Dateisystem von einem anderen System mounten oder wenn eine Datei einem jetzt gelöschten Benutzer gehört oder wenn Sie eine numerische Benutzer-ID an chown
übergeben haben , können Sie eine Datei haben, die zu einer Benutzer-ID gehört, die keinen Namen hat.
Auf einem gemeinsam genutzten Host haben Sie möglicherweise Zugriff auf einige Dateien, die von mehreren virtuellen Maschinen gemeinsam genutzt werden, jede mit ihrer Benutzerdatenbank. Das ist ein bisschen seltsam (warum Dateien teilen, aber nicht die Benutzer, denen sie gehören?), aber es ist technisch möglich.