¿Existe una herramienta (!) Para enumerar los valores subuid y subgid asignados para los usuarios?

13

usermod -v( --add-sub-uids) y usermod -w( --add-sub-gids) se pueden usar para manipular los rangos subuid y subgid para una cuenta de usuario, pero parece que no hay ninguna herramienta que pueda simplemente enumerarlos. ¿Hay uno?

Al menos en mi cuadro Ubuntu 14.04 getentno parece estar preparado para manejar esa información desde /etc/subuidy /etc/subgid.

Actualmente estoy usando un pequeño script de shell, con awkel propósito.


Aquí hay un extracto de 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.
[...]
0xC0000022L
fuente
3
El soporte de herramientas para espacios de nombres va a la zaga del soporte de kernel, por lo que no me sorprendería si la respuesta fuera "estas herramientas aún no existen" o al menos "estas herramientas aún no han llegado a la mayoría de las distribuciones".
Gilles 'SO- deja de ser malvado'

Respuestas:

1

Por el momento, aquí está el script de shell que he estado usando.

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

Sintaxis:

showsubids [username]

Si no se proporciona un nombre de usuario, se enumerarán todos. Si se proporciona un nombre de usuario, solo se mostrarán las entradas correspondientes.

El manejo de errores es subóptimo, pero si ayuda a alguien ...

0xC0000022L
fuente