cwd*_*cwd 99 linux users ubuntu uuid
该命令id可用于查找用户的uid,例如:
$ id -u ubuntu
1000
Run Code Online (Sandbox Code Playgroud)
是否有命令可以从 a 中查找用户名uid?我意识到这可以通过查看/etc/passwd文件来完成,但我问是否有一个现有的命令,特别是如果执行它的用户不是 root。
我不是在寻找当前用户的用户名,即我不是在寻找whoami或logname。
这也让我想知道在共享网络托管上这是否是一项安全功能,还是我只是没有正确理解某些内容?
为了检查,/etc/passwd来自共享网络主机的文件:
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
Run Code Online (Sandbox Code Playgroud)
这是一个示例目录列表 /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
Run Code Online (Sandbox Code Playgroud)
我们可以看到root是某些文件的所有者,并且root也显示在 中/etc/passwd,但是其他用户/组都显示为数字。
jw0*_*013 86
尝试
getent passwd "$uid" | cut -d: -f1
Run Code Online (Sandbox Code Playgroud)
Ste*_*fan 72
你可能会喜欢这首小曲。
$ id -nu [number]
Run Code Online (Sandbox Code Playgroud)
3.17.3-1-ARCH #1 SMP PREEMPT 星期五 11 月 14 日 22:56:01 CET 2014 i686 GNU/Linux
我可以确认它在 Arch Linux 上返回了相应的用户名(如果存在)。我还可以确认它在以普通用户身份运行时在 Ubuntu 上不起作用,尽管我没有以超级用户身份进行测试。它也不适用于 Alpine Linux。也许安全功能会阻止它在某些系统上工作。
Gil*_*il' 47
ls已经执行了该查找。您可以从命令行执行用户信息查找getent passwd。
如果ls显示用户 ID 而不是用户名,那是因为没有该名称的用户。文件系统存储用户 ID,而不是用户名。如果您从另一个系统挂载文件系统,或者文件属于现已删除的用户,或者如果您将数字用户 ID 传递给chown,则您可以拥有属于没有名称的用户 ID 的文件。
在共享主机上,您可能有权访问在多个虚拟机之间共享的某些文件,每个虚拟机都有其用户数据库。这有点奇怪(为什么共享文件而不是拥有它们的用户?),但在技术上是可行的。
该命令id可以用于两种查找UID和/或用户名
$ id -u ubuntu
1000
$ id -un 1000
乌本图
如果在当前机器上找不到 UID 或 USER,它会将no such user消息打印到stderr,例如:
$ id -un 1234
id: 1234: no such user
Run Code Online (Sandbox Code Playgroud)
来自man id:
Run Code Online (Sandbox Code Playgroud)id - print real and effective user and group IDs -n, --name print a name instead of a number, for -ugG -u, --user print only the effective user ID -g, --group print only the effective group ID -G, --groups print all group IDs
| 归档时间: |
|
| 查看次数: |
236388 次 |
| 最近记录: |