slitaz-dev-tools annotate tazu/tazu @ rev 214

Add tazu - SliTaz users utility (mainly to manage tazbug/tinycm users on tank)
author Christophe Lincoln <pankso@slitaz.org>
date Tue Jan 07 17:40:38 2014 +0100 (2014-01-07)
parents
children 16cb64fb7e17
rev   line source
pankso@214 1 #!/bin/sh
pankso@214 2 #
pankso@214 3 # TazU - SliTaz Users account utility
pankso@214 4 #
pankso@214 5 # Copyright 2014 (C) SliTaz GNU/Linux - BSD License
pankso@214 6 # Author: Christophe Lincoln <pankso@slitaz.org>
pankso@214 7 #
pankso@214 8 . /lib/libtaz.sh
pankso@214 9 check_root
pankso@214 10
pankso@214 11 authfile="/var/lib/slitaz/auth/people"
pankso@214 12 people="/var/lib/slitaz/people"
pankso@214 13 user="$1"
pankso@214 14
pankso@214 15 #
pankso@214 16 # Functions
pankso@214 17 #
pankso@214 18
pankso@214 19 usage() {
pankso@214 20 cat << EOT
pankso@214 21
pankso@214 22 Usage: $(basename $0) [user|command] [--option]
pankso@214 23
pankso@214 24 Commands:
pankso@214 25 count Count all users
pankso@214 26 list List all users
pankso@214 27
pankso@214 28 Options:
pankso@214 29 --admin Make user admin
pankso@214 30 --del Delete a user
pankso@214 31
pankso@214 32 EOT
pankso@214 33 }
pankso@214 34
pankso@214 35 no_account() {
pankso@214 36 echo "No user account for: $user"
pankso@214 37 }
pankso@214 38
pankso@214 39 #
pankso@214 40 # Commands
pankso@214 41 #
pankso@214 42
pankso@214 43 case "$1" in
pankso@214 44 "") usage ;;
pankso@214 45 count)
pankso@214 46 echo -n "Users: "
pankso@214 47 colorize 34 "$(ls $people | wc -l)" ;;
pankso@214 48 list)
pankso@214 49 # List all users
pankso@214 50 newline
pankso@214 51 boldify "SliTaz users list"
pankso@214 52 separator
pankso@214 53 for user in $(ls $people)
pankso@214 54 do
pankso@214 55 . $people/$user/account.conf
pankso@214 56 echo -n "$(colorize 34 "$user")"
pankso@214 57 echo -e "\\033[16G${NAME}"
pankso@214 58 done
pankso@214 59 separator && newline ;;
pankso@214 60 *)
pankso@214 61 # Handle general: --options
pankso@214 62 case " $@ " in
pankso@214 63 *\ --admin\ *)
pankso@214 64 # Admin user
pankso@214 65 if fgrep -q ADMIN_USER= ${people}/${user}/account.conf; then
pankso@214 66 echo -n "User is already admin: " && colorize 34 "$user"
pankso@214 67 else
pankso@214 68 echo -n "Adding $user to admin users..."
pankso@214 69 echo 'ADMIN_USER="yes"' >> ${people}/${user}/account.conf
pankso@214 70 status
pankso@214 71 fi ;;
pankso@214 72
pankso@214 73 *\ --del\ *)
pankso@214 74 # Delete a user
pankso@214 75 if [ -d "${people}/${user}" ]; then
pankso@214 76 echo -n "Deleting user: $(colorize 34 "$user")"
pankso@214 77 rm -rf "${people}/${user}"
pankso@214 78 sed -i "/^${user}:/"d $authfile
pankso@214 79 status
pankso@214 80 else
pankso@214 81 no_account
pankso@214 82 fi ;;
pankso@214 83
pankso@214 84 *)
pankso@214 85 # Show user info
pankso@214 86 if [ -d "${people}/${user}" ]; then
pankso@214 87 newline
pankso@214 88 echo "$(boldify "User:") $(colorize 34 "$user")"
pankso@214 89 separator
pankso@214 90 cat $people/$user/account.conf | grep "="
pankso@214 91 separator && newline
pankso@214 92 else
pankso@214 93 no_account
pankso@214 94 echo ${people}/${user}
pankso@214 95 fi ;;
pankso@214 96 esac ;;
pankso@214 97 esac
pankso@214 98
pankso@214 99 exit 0