|
Zbigniew Jędrzejewski-Szmek |
ced923 |
#!/bin/bash
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
|
|
Luca BRUNO |
21ca64 |
process_u() {
|
|
Luca BRUNO |
21ca64 |
if [ ! -z "${2##*[!0-9]*}" ]; then
|
|
Luca BRUNO |
21ca64 |
# Single shared static ID.
|
|
Luca BRUNO |
21ca64 |
echo "user($1) = $2"
|
|
Luca BRUNO |
21ca64 |
echo "group($1) = $2"
|
|
Luca BRUNO |
21ca64 |
elif [[ $2 == *:* ]]; then
|
|
Luca BRUNO |
21ca64 |
# UID:<group>.
|
|
Luca BRUNO |
21ca64 |
uid=$(echo $2 | cut -d':' -f1 -)
|
|
Luca BRUNO |
21ca64 |
group=$(echo $2 | cut -d':' -f2 -)
|
|
Luca BRUNO |
21ca64 |
if [ ! -z "${group##*[!0-9]*}" ]; then
|
|
Luca BRUNO |
21ca64 |
# UID:GID.
|
|
Luca BRUNO |
21ca64 |
echo "user($1) = ${uid}"
|
|
Luca BRUNO |
21ca64 |
echo "group($1) = ${group}"
|
|
Luca BRUNO |
21ca64 |
else
|
|
Luca BRUNO |
21ca64 |
# UID:<groupname>.
|
|
Luca BRUNO |
21ca64 |
echo "user($1) = ${uid}"
|
|
Luca BRUNO |
21ca64 |
echo "group(${group})"
|
|
Luca BRUNO |
21ca64 |
fi
|
|
Luca BRUNO |
21ca64 |
else
|
|
Luca BRUNO |
21ca64 |
# Dynamic (or something else uninteresting).
|
|
Luca BRUNO |
21ca64 |
echo "user($1)"
|
|
Luca BRUNO |
21ca64 |
echo "group($1)"
|
|
Luca BRUNO |
21ca64 |
fi
|
|
Luca BRUNO |
21ca64 |
}
|
|
Luca BRUNO |
21ca64 |
|
|
Luca BRUNO |
21ca64 |
process_g() {
|
|
Luca BRUNO |
21ca64 |
if [ ! -z "${2##*[!0-9]*}" ]; then
|
|
Luca BRUNO |
21ca64 |
# Static GID.
|
|
Luca BRUNO |
21ca64 |
echo "group($1) = $2"
|
|
Luca BRUNO |
21ca64 |
else
|
|
Luca BRUNO |
21ca64 |
# Dynamic (or something else uninteresting).
|
|
Luca BRUNO |
21ca64 |
echo "group($1)"
|
|
Luca BRUNO |
21ca64 |
fi
|
|
Luca BRUNO |
21ca64 |
}
|
|
Luca BRUNO |
21ca64 |
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
parse() {
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
while read line; do
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
[ "${line:0:1}" = '#' -o "${line:0:1}" = ';' ] && continue
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
line="${line## *}"
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
[ -z "$line" ] && continue
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
set -- $line
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
case "$1" in
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
('u')
|
|
Luca BRUNO |
21ca64 |
process_u "$2" "$3"
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
;;
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
('g')
|
|
Luca BRUNO |
21ca64 |
process_g "$2" "$3"
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
;;
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
('m')
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
echo "user($2)"
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
echo "group($3)"
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
;;
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
esac
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
done
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
while read fn; do
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
parse < "$fn"
|
|
Zbigniew Jędrzejewski-Szmek |
ced923 |
done
|