Gibt es ein Tool(!), um zugewiesene Subuid- und Subgid-Werte für Benutzer aufzulisten?

Gibt es ein Tool(!), um zugewiesene Subuid- und Subgid-Werte für Benutzer aufzulisten?

usermod -vMit ( --add-sub-uids) und usermod -w( --add-sub-gids) können die Subuid- und Subgid-Bereiche für ein Benutzerkonto bearbeitet werden, aber es scheint kein Tool zu geben, das sie einfach auflisten kann. Gibt es eines?

Zumindest meine Ubuntu 14.04-Box getentscheint nicht darauf vorbereitet zu sein, diese Informationen von /etc/subuidund zu verarbeiten /etc/subgid.

Derzeit verwende ich awkfür diesen Zweck ein kleines Shell-Skript.


Hier ein Auszug aus 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.
[...]

Antwort1

Hier ist vorerst das Shell-Skript, das ich verwendet habe.

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

Syntax:

showsubids [username]

Wenn kein Benutzername angegeben ist, werden alle aufgelistet. Wenn ein Benutzername angegeben ist, werden nur die Einträge dazu angezeigt.

Die Fehlerbehandlung ist nicht optimal, aber wenn es jemandem hilft ...

verwandte Informationen