Есть ли инструмент(!) для вывода списка назначенных пользователям значений 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]

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

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

Связанный контент