slitaz-dev-tools 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 bd6d8b961782
children 9799e8a6e9a8
files tazu/Makefile tazu/tazu
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/tazu/Makefile	Tue Jan 07 17:40:38 2014 +0100
     1.3 @@ -0,0 +1,13 @@
     1.4 +# Makefile for TazU.
     1.5 +#
     1.6 +
     1.7 +PREFIX?=/usr
     1.8 +DESTDIR?=
     1.9 +
    1.10 +all:
    1.11 +
    1.12 +install:
    1.13 +	install -m 0755 tazu $(DESTDIR)$(PREFIX)/bin
    1.14 +
    1.15 +uninstall:
    1.16 +	rm -rf $(DESTDIR)$(PREFIX)/bin/tazu
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/tazu/tazu	Tue Jan 07 17:40:38 2014 +0100
     2.3 @@ -0,0 +1,99 @@
     2.4 +#!/bin/sh
     2.5 +#
     2.6 +# TazU - SliTaz Users account utility
     2.7 +#
     2.8 +# Copyright 2014 (C) SliTaz GNU/Linux - BSD License
     2.9 +# Author: Christophe Lincoln <pankso@slitaz.org>
    2.10 +#
    2.11 +. /lib/libtaz.sh
    2.12 +check_root
    2.13 +
    2.14 +authfile="/var/lib/slitaz/auth/people"
    2.15 +people="/var/lib/slitaz/people"
    2.16 +user="$1"
    2.17 +
    2.18 +#
    2.19 +# Functions
    2.20 +#
    2.21 +
    2.22 +usage() {
    2.23 +	cat << EOT
    2.24 +
    2.25 +Usage: $(basename $0) [user|command] [--option]
    2.26 +
    2.27 +Commands:
    2.28 +  count    Count all users
    2.29 +  list     List all users
    2.30 +
    2.31 +Options:
    2.32 +  --admin  Make user admin
    2.33 +  --del    Delete a user
    2.34 +
    2.35 +EOT
    2.36 +}
    2.37 +
    2.38 +no_account() {
    2.39 +	echo "No user account for: $user"
    2.40 +}
    2.41 +
    2.42 +#
    2.43 +# Commands
    2.44 +#
    2.45 +
    2.46 +case "$1" in
    2.47 +	"") usage ;;
    2.48 +	count)
    2.49 +		echo -n "Users: "
    2.50 +		colorize 34 "$(ls $people | wc -l)" ;;
    2.51 +	list)
    2.52 +		# List all users
    2.53 +		newline
    2.54 +		boldify "SliTaz users list"
    2.55 +		separator
    2.56 +		for user in $(ls $people)
    2.57 +		do
    2.58 +			. $people/$user/account.conf
    2.59 +			echo -n "$(colorize 34 "$user")"
    2.60 +			echo -e "\\033[16G${NAME}"
    2.61 +		done 
    2.62 +		separator && newline ;;
    2.63 +	*)
    2.64 +		# Handle general: --options
    2.65 +		case " $@ " in
    2.66 +			*\ --admin\ *)
    2.67 +				# Admin user
    2.68 +				if fgrep -q ADMIN_USER= ${people}/${user}/account.conf; then
    2.69 +					echo -n "User is already admin: " && colorize 34 "$user" 
    2.70 +				else
    2.71 +					echo -n "Adding $user to admin users..."
    2.72 +					echo 'ADMIN_USER="yes"' >> ${people}/${user}/account.conf
    2.73 +					status
    2.74 +				fi ;;
    2.75 +			
    2.76 +			*\ --del\ *)
    2.77 +				# Delete a user
    2.78 +				if [ -d "${people}/${user}" ]; then
    2.79 +					echo -n "Deleting user: $(colorize 34 "$user")" 
    2.80 +					rm -rf "${people}/${user}"
    2.81 +					sed -i "/^${user}:/"d $authfile
    2.82 +					status
    2.83 +				else
    2.84 +					no_account
    2.85 +				fi ;;
    2.86 +			
    2.87 +			*)
    2.88 +				# Show user info
    2.89 +				if [ -d "${people}/${user}" ]; then	
    2.90 +					newline
    2.91 +					echo "$(boldify "User:") $(colorize 34 "$user")"
    2.92 +					separator
    2.93 +					cat $people/$user/account.conf | grep "="
    2.94 +					separator && newline
    2.95 +				else
    2.96 +					no_account
    2.97 +					echo ${people}/${user}
    2.98 +				fi ;;
    2.99 +		esac ;;
   2.100 +esac
   2.101 +
   2.102 +exit 0