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