
Mit dem Befehl kann beispielsweise die id
Kennung 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 whoami
oder 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/passwd
Datei 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 root
auch 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
ls
führt diese Suche bereits durch. Sie können eine Benutzerinformationssuche von der Befehlszeile aus durchführen mitgetent passwd
.
Wenn ls
eine 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>