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