3 ########################################################################
5 ## This script will read the /etc/{passwd,group,shadow} and create an
6 ## equivalent registry tree under $ROOT.
8 ## The correct way to run it is:
10 ## # ./users-convert | sh -e
13 ## To make tests you can do:
15 ## $ ROOT=user/test ./users-convert | sh -e
17 ## Avi Alkalay <avi@unix.sh>
22 ########################################################################
25 [ -z "$RG" ] && RG="kdb"
26 [ -z "$ROOT" ] && ROOT="system"
29 cat /etc/passwd | awk -F : "{
30 print \"$RG set $ROOT/users/\" \$1 \"/uid \'\" \$3 \"\'\";
31 print \"$RG set $ROOT/users/\" \$1 \"/password \'\" \$2 \"\'\";
32 print \"$RG set $ROOT/users/\" \$1 \"/gid \'\" \$4 \"\'\";
33 print \"$RG set $ROOT/users/\" \$1 \"/gecos \'\" \$5 \"\'\";
34 print \"$RG set $ROOT/users/\" \$1 \"/home \'\" \$6 \"\'\";
35 print \"$RG set $ROOT/users/\" \$1 \"/shell \'\" \$7 \"\'\";
42 cat /etc/group | awk -F : "{
43 print \"$RG set $ROOT/groups/\" \$1 \"/gid \'\" \$3 \"\'\";
44 print \"$RG set $ROOT/groups/\" \$1 \"/members \'\" \$4 \"\'\";
51 if [ -r /etc/shadow ]; then
52 cat /etc/shadow | awk -F : "{
53 print \"$RG set -m 0600 $ROOT/users/\" \$1 \"/shadowPassword \'\" \$2 \"\'\";
54 print \"$RG set -m 0600 $ROOT/users/\" \$1 \"/passwdChangeBefore \'\" \$4 \"\'\";
55 print \"$RG set -m 0600 $ROOT/users/\" \$1 \"/passwdChangeAfter \'\" \$5 \"\'\";
56 print \"$RG set -m 0600 $ROOT/users/\" \$1 \"/passwdWarnBefore \'\" \$6 \"\'\";
57 print \"$RG set -m 0600 $ROOT/users/\" \$1 \"/passwdDisableAfter \'\" \$7 \"\'\";
58 print \"$RG set -m 0600 $ROOT/users/\" \$1 \"/passwdDisabledSince \'\" \$8 \"\'\";
59 print \"$RG set -m 0600 $ROOT/users/\" \$1 \"/passwdReserved \'\" \$9 \"\'\";