사용자에게 할당된 subuid, subgid 값을 나열할 수 있는 도구(!)가 있나요?

사용자에게 할당된 subuid, subgid 값을 나열할 수 있는 도구(!)가 있나요?

usermod -v( --add-sub-uids) 및 usermod -w( --add-sub-gids)를 사용하여 사용자 계정의 subuid 및 subgid 범위를 조작할 수 있지만 이를 단순히 나열할 수 있는 도구는 없는 것 같습니다. 그것을 가지고?

적어도 내 Ubuntu 14.04 시스템에서는 및 에서 오는 정보를 getent처리할 준비가 되어 있지 않은 것 같습니다 ./etc/subuid/etc/subgid

현재 저는 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.
[...]

답변1

현재 제가 사용하고 있는 쉘 스크립트는 다음과 같습니다.

#!/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]

사용자 이름을 지정하지 않으면 모든 사용자 이름이 나열됩니다. 사용자 이름이 제공되면 해당 사용자 이름에 대한 항목만 표시됩니다.

오류 처리는 이상적이지는 않지만 누군가에게 도움이 된다면...

관련 정보