Users
Ubuntu上是否有類似“lid”的命令?
在 RHEL 上,有一個 command
lid
,它列出了組使用者,無論是主要組還是次要組。[root@192 ~]# id user1 uid=1000(user1) gid=1000(user1) groups=1000(user1),1001(g1) [root@192 ~]# id user2 uid=1001(user2) gid=1002(user2) groups=1002(user2),1001(g1) [root@192 ~]# id user3 uid=1002(user3) gid=1001(g1) groups=1001(g1) [root@192 ~]# lid -g g1 user3(uid=1002) user1(uid=1000) user2(uid=1001) [root@192 ~]#
但它在 Ubuntu 上不存在。有沒有類似的?
它確實存在於 Ubuntu 中,但以不同的名稱提供:
sudo libuser-lid -g g1
它是
libuser
軟體包的一部分,如有必要,請安裝:sudo apt install libuser
它沒有命名的原因
lid
是它lid
在id-utils
包中提供並且具有不同的用途。
可以使用標準實用程序來實現所描述的功能:
for u in $(grep '^g1:' /etc/group | cut -d: -f4 | tr , '\n'); do printf "%s(uid=%d)\n" $u $(id -u "$u") done
**更新:**命令:
grep -E '^([^:]+:){3}'$(grep '^g1:' /etc/group | cut -d: -f3)':' /etc/passwd | cut -d: -f1
將從 /etc/passwd 中檢索與主要組為
g1
. 這可以與前面的命令結合使用:for u in $({ grep -E '^([^:]+:){3}'$(grep '^g1:' /etc/group | \ cut -d: -f3)':' /etc/passwd | cut -d: -f1; \ grep '^g1:' /etc/group | cut -d: -f4 | tr , '\n'; }); do printf "%s(uid=%d)\n" $u $(id -u "$u") done | sort | uniq
最後增加了對重複項的排序和刪除。
為方便起見,可以將該命令做成一個 shell 函式,使用組名作為參數。
**編輯:**更新正則表達式以匹配確切的組名。