Linux

反向 id 命令,我想要來自 uid 或 gid 的使用者/組名

  • December 12, 2018

我知道一些我不知道它們屬於誰的 uid 和 gid,它們不在 /etc/passwd 中(可能是 LDAP 或來自另一個系統)。如何僅從 uid 或 gid 獲取 Id 資訊,最好不使用 ldapsearch 或 getent 或 id 之外的任何 LDAP 命令,或其他簡單的方法。Linux 2.6 核心,Red Hat 變體。

您可以使用該getent命令,該命令將基於/etc/nsswitch.conf. 這意味著如果ldap在系統上配置,getent將嘗試在ldap. 這是一個例子:

$ getent passwd 33
www-data:x:33:33:www-data:/var/www:/bin/sh

要獲取與 UID 關聯的使用者名-n,請使用以下選項id

$ id
uid=1000(myself) gid=1000(myself) groups=1000(myself), 0(wheel), 9(wsrc)
$ id -n -u 1000
myself

這對 GID 不起作用,但正如id預期的使用者名或 UID 一樣:

$ id -n -g 9
id: 9: No such user

您可以使用以下命令同時查詢 passwd 數據庫和組數據庫中的 UID 和 GID getent

$ getent passwd 1000
myself:*:1000:1000:Just me,,,:/home/myself:/bin/sh
$ getent group 9
wsrc:*:9:myself

實際的使用者名或組名可以通過管道輸出來解析出來cut -d : -f 1


id是一個POSIX 實用程序,而getent不是。

引用自:https://unix.stackexchange.com/questions/109680