slitaz-dev-tools view tazu/tazu @ rev 261

tazu: small fix
author Christophe Lincoln <pankso@slitaz.org>
date Mon Dec 12 19:20:50 2016 +0100 (2016-12-12)
parents db2f2190018f
children 4b4df41dc0fe
line source
1 #!/bin/sh
2 #
3 # TazU - SliTaz Users account utility
4 #
5 # This tool is used to mange SliTaz users accounts on bugs.slitaz.org
6 # and scn.slitaz.org. It can also be used to admin TinyCM users DB.
7 #
8 # Copyright 2016 (C) SliTaz GNU/Linux - BSD License
9 # Author: Christophe Lincoln <pankso@slitaz.org>
10 #
11 . /lib/libtaz.sh
12 check_root
14 authfile="/var/lib/slitaz/auth/people"
15 people="/var/lib/slitaz/people"
16 user="$1"
18 #
19 # Functions
20 #
22 usage() {
23 cat << EOT
25 Usage: $(basename $0) [user|command] [--option]
27 Commands:
28 count Count all users
29 list List all users
30 check Check accounts integrity
32 Options:
33 --admin Make user admin
34 --del Delete a user
35 --clean check: clean users accounts
37 EOT
38 }
40 no_account() {
41 echo "No user account for: $user"
42 }
44 #
45 # Commands
46 #
48 case "$1" in
49 "") usage ;;
50 count)
51 echo -n "Users: "
52 colorize 34 "$(ls $people | wc -l)" ;;
53 list)
54 # List all users
55 newline
56 boldify "SliTaz users list"
57 separator
58 for user in $(ls $people)
59 do
60 if ! [ -f "$people/$user/account.conf" ]; then
61 echo -n "$(colorize 31 "$user")"
62 echo -e "\\033[16GCORRUPTED" && continue
63 fi
64 . $people/$user/account.conf
65 echo -n "$(colorize 34 "$user")"
66 echo -e "\\033[16G${NAME}"
67 done
68 separator && newline ;;
69 check)
70 # Check accounts and auth file
71 newline
72 boldify "SliTaz accounts integrity"
73 separator
74 echo "$(colorize 33 "Checking account.conf files...")"
75 for user in $(ls $people)
76 do
77 if ! [ -f "$people/$user/account.conf" ]; then
78 echo -n "$(colorize 30 "$user")"
79 echo -e "\\033[16GMissing account.conf"
80 if [ "$clean" ]; then # --clean
81 rm -rf "${people}/${user}"
82 sed -i "/^${user}:/"d $authfile
83 fi
84 #else -- check empty VALUES
85 fi
86 done
87 echo "$(colorize 33 "Checking auth file...")"
88 for user in "$(cat $authfile | cut -d : -f 1)"
89 do
90 if ! [ -d "$people/$user" ]; then
91 echo -n "$(colorize 30 "$user")"
92 echo -e "\\033[16GMissing in DB"
93 if [ "$clean" ]; then # --clean
94 sed -i "/^${user}:/"d $authfile
95 fi
96 fi
97 done
98 separator && newline ;;
99 *)
100 # Handle general: --options
101 case " $@ " in
102 *\ --admin\ *)
103 # Admin user
104 if fgrep -q ADMIN_USER= ${people}/${user}/account.conf; then
105 echo -n "User is already admin: " && colorize 34 "$user"
106 else
107 echo -n "Adding $user to admin users..."
108 echo 'ADMIN_USER="yes"' >> ${people}/${user}/account.conf
109 status
110 fi ;;
112 *\ --del\ *)
113 # Delete a user
114 if [ -d "${people}/${user}" ]; then
115 echo -n "Deleting user: $(colorize 34 "$user")"
116 rm -rf "${people}/${user}"
117 sed -i "/^${user}:/"d $authfile
118 status
119 else
120 no_account
121 fi ;;
123 *)
124 # Show user info
125 if [ -d "${people}/${user}" ]; then
126 newline
127 echo "$(boldify "User:") $(colorize 34 "$user")"
128 separator
129 cat $people/$user/account.conf | grep "="
130 separator && newline
131 else
132 no_account
133 echo ${people}/${user}
134 fi ;;
135 esac ;;
136 esac
138 exit 0