Der Befehl id
kann zum Nachschlagen eines Benutzers verwendet werden uid
, zum Beispiel:
$ id -u ubuntu
1000
Gibt es einen Befehl zum Nachschlagen eines Benutzernamens von a uid
? Ich erkenne, dass dies getan werden kann, indem man sich die /etc/passwd
Datei ansieht, aber ich frage, ob ein Befehl dafür vorhanden ist, besonders wenn der Benutzer, der ihn ausführt, nicht root ist.
Ich suche nicht nach dem Benutzernamen des aktuellen Benutzers, dh ich suche nicht whoami
oder logname
.
Das hat mich auch gefragt, ob es sich bei Shared Web Hosting um eine Sicherheitsfunktion handelt, oder verstehe ich einfach etwas nicht richtig?
Zur Überprüfung die /etc/passwd
Datei von einem freigegebenen 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 Beispielverzeichnis 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, dass root
der Eigentümer einiger Dateien ist und root
auch in /etc/passwd
angezeigt wird. Die anderen Benutzer / Gruppen werden jedoch alle als Zahlen angezeigt.
Antworten:
ls
führt diese Suche bereits durch. Sie können eine Benutzerinformationssuche über die Befehlszeile mit ausführengetent passwd
.Wenn
ls
anstelle eines Benutzernamens eine Benutzer-ID angezeigt wird, liegt dies daran, dass kein Benutzer mit diesem Namen vorhanden ist. Dateisysteme speichern Benutzer-IDs, keine Benutzernamen. Wenn Sie ein Dateisystem von einem anderen System bereitstellen oder wenn eine Datei einem jetzt gelöschten Benutzer gehört oder wenn Sie eine numerische Benutzer-ID an übergeben habenchown
, 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 mit jeweils ihrer Benutzerdatenbank gemeinsam genutzt werden. Das ist etwas seltsam (warum Dateien freigeben, aber nicht die Benutzer, denen sie gehören?), Aber technisch möglich.
quelle
ls -l
wenn der Name länger als acht Zeichen ist.Versuchen
quelle
t set
"$ uid" haben oder dass diese UID nicht existiert. Findetgrep ":$uid:" /etc/passwd
es? Hatgetent passwd
erzeugen eine Ausgabe?ls -l
macht das immer so.ls
Auflistung auf einem gemeinsam genutzten Host Nummern in den Benutzer- / Gruppennamensspalten mit ls angezeigt wurden. Vielleicht ist es eine Sicherheits- oder Gefängnissache?/etc/passwd
/ freigegebenen Host von einer anderen Stelle verwendet, die zu diesem Zeitpunkt noch nicht bereitgestellt war.Sie könnten dieses kleine Liedchen genießen.
3.17.3-1-ARCH # 1 SMP PREEMPT Fri Nov 14 22:56:01 CET 2014 i686 GNU / Linux
Ich kann bestätigen, dass unter Arch Linux ein entsprechender Benutzername zurückgegeben wird, 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. Es funktioniert auch nicht unter Alpine Linux. Möglicherweise verhindert eine Sicherheitsfunktion, dass dies auf einigen Systemen funktioniert.
quelle
id -u jimmij
=>1000
.id -nu 1000
=>id: 1000: no such user
.id --version
=id (GNU coreutils) 8.23
Mir ist klar, dass dies eine alte Frage ist, aber hier ist eine andere Antwort
quelle
grep
was? (Wenn Sie am Anfang der Zeile vier Leerzeichen einfügen, wird der Text als Text mit fester Breite gerendert.)getent passwd
. Wenn Sie jedoch / etc / passwd analysieren, ist es besser, nur awk zu verwendenID=0 ; awk -F: '{if ( $3 == '"$ID"' ) print $1}' /etc/passwd
.Parse / etc / passwd:
quelle
getent
dazu funktioniert dies nicht, wenn das System LDAP verwendet.quelle