Существует ли инструмент (!) Для отображения назначенных значений subuid и subgid для пользователей?

13

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.
[...]
0xC0000022L
источник
3
Поддержка инструментов для пространств имен отстает от поддержки ядра, поэтому меня не удивит ответ, если «эти инструменты еще не существуют» или, по крайней мере, «эти инструменты еще не вошли в большинство дистрибутивов».
Жиль "ТАК - перестань быть злым"

Ответы:

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]

Если имя пользователя не указано, все будут перечислены. Если имя пользователя указано, будут показаны только записи для него.

Обработка ошибок неоптимальна, но если кому-то это поможет ...

0xC0000022L
источник