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 |