是否有工具(!)列出用户分配的subuid和subgid值?


13

usermod -v--add-sub-uids)和usermod -w--add-sub-gids)可用于操纵用户帐户的subuid和subgid范围,但是似乎没有工具可以仅列出它们。有一个吗?

至少在我的Ubuntu 14.04机器上getent,似乎并没有准备好处理来自/etc/subuid和的信息/etc/subgid

目前,我正在使用一个小的shell脚本,awk用于此目的。


以下是摘录usermod(8)

-v, --add-sub-uids FIRST-LAST
    Add a range of subordinate uids to the users account.
[...]
-V, --del-sub-uids FIRST-LAST
    Remove a range of subordinate uids from the users account.
[...]
-w, --add-sub-gids FIRST-LAST
    Add a range of subordinate gids to the users account.
[...]
-W, --del-sub-gids FIRST-LAST
    Remove a range of subordinate gids from the users account.
[...]

3
对名称空间的工具支持落后于内核支持,因此如果答案是“这些工具尚不存在”或至少“这些工具尚未进入大多数发行版”,这也不会令我感到惊讶。
吉尔(Gilles)'所以

Answers:


1

暂时,这是我一直在使用的shell脚本。

#!/bin/bash
SUBUID=/etc/subuid
SUBGID=/etc/subgid
for i in $SUBUID $SUBGID; do [[ -f "$i" ]] || { echo "ERROR: $i does not exist, but is required."; exit 1; }; done
[[ -n "$1" ]] && USERS=$1 || USERS=$(awk -F : '{x=x " " $1} END{print x}' $SUBUID)
for i in $USERS; do
        awk -F : "\$1 ~ /$i/ {printf(\"%-16s sub-UIDs: %6d..%6d (%6d)\", \$1 \",\", \$2, \$2+\$3, \$3)}" $SUBUID
        awk -F : "\$1 ~ /$i/ {printf(\", sub-GIDs: %6d..%6d (%6d)\", \$2, \$2+\$3, \$3)}" $SUBGID
        echo ""
done

句法:

showsubids [username]

如果未提供用户名,将全部列出。如果提供了用户名,则只会显示该用户名的条目。

错误处理不是最理想的,但是如果它可以帮助某人...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.