· 9 years ago · Oct 21, 2016, 11:10 AM
1DBFILE=linuxusers.db
2PASSWDFILE=/etc/passwd
3TABLENAME="USERS"
4
5if ! [ -r "$PASSWDFILE" ]
6then
7 echo "Could not read $PASSWDFILE. Exiting..."
8 exit 1
9fi
10
11echo "Preparing database file $DBFILE now..."
12sqlite3 "$DBFILE" "DROP TABLE IF EXISTS $TABLENAME;"
13sqlite3 "$DBFILE" "CREATE TABLE $TABLENAME (username not null, uid integer not null, gid integer not null, homedir text not null)"
14echo "Database prepared, filling..."
15
16ALL="$(grep -E "^([a-z0-9]*tux)|(vm[a-z0-9]*)|(root):" testpasswd | cut -d':' -f 1,3,4,6)"
17
18echo "$ALL" | while read line
19do
20 _USER="$(echo "$line" | cut -d':' -f1)"
21 _UID="$(echo "$line" | cut -d':' -f2)"
22 _GID="$(echo "$line" | cut -d':' -f3)"
23 _HOMEDIR="$(echo "$line" | cut -d':' -f4)"
24 sqlite3 "$DBFILE" "INSERT INTO $TABLENAME VALUES ('$_USER', $_UID, $_GID, '$_HOMEDIR');"
25done
26
27echo "Database filled. Printing results:"
28sqlite3 -header "$DBFILE" "SELECT username, gid, uid, homedir FROM USERS";