Wie kann ich in Linux einen Benutzernamen anhand der ID nachschlagen?

Wie kann ich in Linux einen Benutzernamen anhand der ID nachschlagen?

Mit dem Befehl kann beispielsweise die idKennung eines Benutzers nachgeschlagen werden :uid

$ id -u ubuntu
1000

Gibt es einen Befehl, um einen Benutzernamen aus einer nachzuschlagen uid? Mir ist klar, dass dies durch einen Blick in die Datei möglich ist /etc/passwd, aber ich frage, ob es dafür bereits einen Befehl gibt, insbesondere wenn der Benutzer, der ihn ausführt, nicht root ist.

Ich suche nicht nach demaktuellBenutzername des Benutzers, d. h. ich suche nicht nach whoamioder logname.

Ich frage mich auch, ob es sich hierbei beim Shared Webhosting um eine Sicherheitsfunktion handelt oder ob ich einfach etwas falsch verstehe.

Zur Überprüfung die /etc/passwdDatei von einem gemeinsam genutzten Webhost:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
avahi-autoipd:x:100:104:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
mailman:x:32006:32006::/usr/local/cpanel/3rdparty/mailman/mailman:/usr/local/cpanel/bin/noshell
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
mysql:x:101:105:MySQL server:/var/lib/mysql:/bin/bash
cpaneleximfilter:x:32007:32009::/var/cpanel/userhomes/cpaneleximfilter:/usr/local/cpanel/bin/noshell
nagios:x:102:106:nagios:/var/log/nagios:/bin/sh
ntp:x:38:38::/etc/ntp:/sbin/nologin
myuser:x:1747:1744::/home/myuser:/usr/local/cpanel/bin/jailshell

Und hier ist ein Beispiel für eine Verzeichnisliste von/tmp/

drwx------  3 root     root        1024 Apr 16 02:09 spamd-22217-init/
drwxr-xr-x  2      665      664    1024 Apr  4 00:05 update-cache-44068ab4/
drwxr-xr-x  4      665      664    1024 Apr 17 15:17 update-extraction-44068ab4/
-rw-rw-r--  1      665      664   43801 Apr 17 15:17 variable.zip
-rw-r--r--  1      684      683    4396 Apr 17 07:01 wsdl-13fb96428c0685474db6b425a1d9baec

Wir können sehen root, dass der Eigentümer einiger Dateien ist und rootauch in angezeigt wird /etc/passwd, die anderen Benutzer/Gruppen werden jedoch alle als Zahlen angezeigt.

Antwort1

Vielleicht gefällt Ihnen dieses kleine Liedchen.

$ id -nu [number]

3.17.3-1-ARCH #1 SMP PREEMPT Fr., 14. Nov. 22:56:01 MEZ 2014 i686 GNU/Linux

Ich kann bestätigen, dass es unter Arch Linux einen entsprechenden Benutzernamen zurückgibt, falls einer existiert. 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. Unter Alpine Linux funktioniert es auch nicht. Möglicherweise verhindert eine Sicherheitsfunktion, dass dies auf einigen Systemen funktioniert.

Antwort2

Versuchen

getent passwd "$uid" | cut -d: -f1

Antwort3

lsführt diese Suche bereits durch. Sie können eine Benutzerinformationssuche von der Befehlszeile aus durchführen mitgetent passwd.

Wenn lseine Benutzer-ID statt eines Benutzernamens angezeigt wird, liegt das daran, dass 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 inzwischen gelöschten Benutzer gehört, oder wenn Sie eine numerische Benutzer-ID an übergeben haben chown, kann es sein, dass 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 eigenen Benutzerdatenbank. Das ist ein bisschen seltsam (warum werden Dateien freigegeben, aber nicht die Benutzer, denen sie gehören?), aber es ist technisch möglich.

Antwort4

Mir ist klar, dass dies eine alte Frage ist, aber hier ist eine andere Antwort

awk -F: '{print $1,$3}' /etc/passwd | grep <UID>

verwandte Informationen