Existe uma ferramenta (!) Para listar os valores subuid e subgid atribuídos aos usuários?

14

usermod -v( --add-sub-uids) e usermod -w( --add-sub-gids) podem ser usados ​​para manipular os intervalos subuid e subgid de uma conta de usuário, mas parece não haver ferramenta que possa meramente listá-los. Existe um?

Pelo menos na minha caixa do Ubuntu 14.04 getentnão parece estar preparado para lidar com essas informações de /etc/subuide /etc/subgid.

Atualmente, estou usando um pequeno script de shell, usando awkpara esse fim.


Aqui está um trecho 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
fonte
3
O suporte a ferramentas para namespaces está atrasado em relação ao suporte ao kernel, portanto, não me surpreenderia se a resposta fosse "essas ferramentas ainda não existem" ou pelo menos "essas ferramentas ainda não chegaram à maioria das distribuições".
Gilles 'SO- stop be evil'

Respostas:

1

Por enquanto, aqui está o script de shell que eu tenho usado.

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

Sintaxe:

showsubids [username]

Se nenhum nome de usuário for fornecido, todos serão listados. Se um nome de usuário for fornecido, apenas as entradas para ele serão mostradas.

O tratamento de erros é subótimo, mas se ajudar alguém ...

0xC0000022L
fonte