Perintah id
dapat digunakan untuk mencari pengguna uid
, misalnya:
$ id -u ubuntu
1000
Apakah ada perintah untuk mencari nama pengguna dari uid
? Saya menyadari ini bisa dilakukan dengan melihat /etc/passwd
file tetapi saya bertanya apakah ada perintah yang ada untuk ini, terutama jika pengguna yang mengeksekusinya bukan root.
Saya tidak mencari nama pengguna pengguna saat ini, yaitu saya tidak mencari whoami
atau logname
.
Ini juga membuat saya bertanya-tanya apakah pada shared hosting web ini adalah fitur keamanan, atau apakah saya hanya tidak memahami sesuatu dengan benar?
Untuk pemeriksaan, /etc/passwd
file dari host web bersama:
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
Dan di sini adalah daftar contoh direktori /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
Kita dapat melihat root
adalah pemilik beberapa file, dan root
juga muncul di /etc/passwd
, namun semua pengguna / grup lainnya muncul sebagai angka.
Jawaban:
ls
sudah melakukan pencarian itu. Anda dapat melakukan pencarian informasi pengguna dari baris perintah dengangetent passwd
.Jika
ls
menampilkan ID pengguna alih-alih nama pengguna, itu karena tidak ada pengguna dengan nama itu. Filesystem menyimpan ID pengguna, bukan nama pengguna. Jika Anda memasang sistem file dari sistem lain, atau jika file milik pengguna yang sekarang dihapus, atau jika Anda memberikan ID pengguna numerikchown
, Anda dapat memiliki file milik ID pengguna yang tidak memiliki nama.Pada host bersama, Anda mungkin memiliki akses ke beberapa file yang dibagi antara beberapa mesin virtual, masing-masing dengan database penggunanya. Ini agak aneh (mengapa berbagi file tetapi bukan pengguna yang memilikinya?), Tetapi secara teknis memungkinkan.
sumber
ls -l
jika nama panjangnya lebih dari delapan karakter.Mencoba
sumber
t set
"$ uid" `atau uid itu tidak ada. Apakahgrep ":$uid:" /etc/passwd
menemukannya? Apakahgetent passwd
menghasilkan output?ls -l
selalu melakukan ini.ls
daftar pada host bersama menunjukkan angka di kolom nama pengguna / grup dengan ls. Mungkin itu tindakan pencegahan keamanan atau penjara?/etc/passwd
mount / dibagi dari tempat lain yang tidak di-mount pada saat itu.Anda mungkin menikmati lagu pendek ini.
3.17.3-1-ARCH # 1 SMP PREEMPT Jum 14 Nov 22 22:01:01 CET 2014 i686 GNU / Linux
Saya dapat mengkonfirmasi bahwa itu mengembalikan nama pengguna yang sesuai, jika ada, di Arch Linux. Saya juga dapat mengkonfirmasi bahwa itu tidak berfungsi di Ubuntu ketika dijalankan sebagai pengguna normal, meskipun saya belum menguji ini sebagai superuser. Ini juga tidak berfungsi di Alpine Linux. Mungkin fitur keamanan mencegah ini bekerja pada beberapa sistem.
sumber
id -u jimmij
=>1000
.id -nu 1000
=>id: 1000: no such user
.id --version
=id (GNU coreutils) 8.23
Saya menyadari ini adalah pertanyaan lama, tetapi inilah jawaban lain
sumber
grep
apa? (Juga jika Anda menambahkan empat spasi di awal baris, itu akan menjadikannya sebagai teks dengan lebar tetap.)getent passwd
. Tetapi jika parsing / etc / passwd, akan lebih baik menggunakan awk sajaID=0 ; awk -F: '{if ( $3 == '"$ID"' ) print $1}' /etc/passwd
.Parse / etc / passwd:
sumber
getent
ini, ini tidak berfungsi jika sistem menggunakan LDAP.sumber