Git init
[pkgs/e/elektra.git] / scripts / convert-users
1 #!/bin/sh
2
3 ########################################################################
4 ##
5 ## This script will read the /etc/{passwd,group,shadow} and create an
6 ## equivalent registry tree under $ROOT.
7 ##
8 ## The correct way to run it is:
9 ##
10 ## # ./users-convert | sh -e
11 ##
12 ##
13 ## To make tests you can do:
14 ##
15 ## $ ROOT=user/test ./users-convert | sh -e
16 ##
17 ## Avi Alkalay <avi@unix.sh>
18 ## March 2004
19 ##
20 ## $Id$
21 ##
22 ########################################################################
23
24
25 [ -z "$RG" ] && RG="kdb"
26 [ -z "$ROOT" ] && ROOT="system"
27
28
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 \"\'\";
36         print \"\";
37 }"
38
39 echo
40 echo
41
42 cat /etc/group | awk -F : "{
43         print \"$RG set $ROOT/groups/\" \$1 \"/gid \'\" \$3 \"\'\";
44         print \"$RG set $ROOT/groups/\" \$1 \"/members \'\" \$4 \"\'\";
45         print \"\";
46 }"
47
48 echo
49 echo
50
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 \"\'\";
60                 print \"\";
61         }"
62 fi
63
64
65
66
67
68
69
70
71
72