Magellan Linux

Diff of /branches/mage-next/src/helper/museradd

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 60 by niro, Tue Feb 15 22:59:14 2005 UTC revision 1500 by niro, Tue Aug 30 10:37:48 2011 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # version: 0.3.6-r13  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/museradd,v 1.4 2005-06-01 15:48:43 niro Exp $
3    
4    # include all needed files
5    [ -f /etc/mage.rc.global ] && source /etc/mage.rc.global
6    [ -f ${MAGERC} ] && source ${MAGERC}
7    [ -f ${MLIBDIR}/mage4.functions.sh ] && source ${MLIBDIR}/mage4.functions.sh
8    
9  print_usage()  print_usage()
10  {  {
# Line 13  print_usage() Line 18  print_usage()
18   echo   echo
19  }  }
20    
21    busybox_fix_user_opts()
22    {
23     local i
24     local FIXED_USER_OPTS
25    
26     for i in $*
27     do
28     case $1 in
29     -d) shift; FIXED_USER_OPTS+=" -h $1" ;;
30     -g) shift; FIXED_USER_OPTS+=" -G $1" ;;
31     -G) shift; shift; continue;; # will be parsed through fix_group_opts
32     -u) shift; [[ $1 -lt 100 ]] && FIXED_USER_OPTS+=" -S"; FIXED_USER_OPTS+=" -u $1" ;;
33     -r) FIXED_USER_OPTS+=" -S" ;;
34     *) FIXED_USER_OPTS+=" $1" ;;
35     esac
36     shift
37     done
38    
39     echo "${FIXED_USER_OPTS}"
40    }
41    
42    busybox_fix_group_opts()
43    {
44     local i
45     local FIXED_GROUP_OPTS
46    
47     for i in $*
48     do
49     case $1 in
50     -G) shift; FIXED_GROUP_OPTS+="$(echo $1 | sed 's:,:\ :g')" ;;
51     esac
52     shift
53     done
54    
55     echo "${FIXED_GROUP_OPTS}"
56    }
57    
58    if [[ ! -z ${MROOT} ]] && [[ ${MROOT} != / ]]
59    then
60     chroot="chroot ${MROOT} "
61    else
62     chroot=""
63    fi
64    
65  while getopts "o:-" opt ; do  while getopts "o:-" opt ; do
66   case "${opt}" in   case "${opt}" in
67   o)   o)
# Line 39  fi Line 88  fi
88    
89  USER_TO_ADD="$1"  USER_TO_ADD="$1"
90    
91  #start nscd to cache passwd  # busybox support needed?
92  $(which nscd) -i passwd  if need_busybox_support adduser
 # get the info  
 my_user="$(getent passwd ${USER_TO_ADD})"  
   
 if [ -z "${my_user}" ]  
93  then  then
94   echo "     Adding user '${USER_TO_ADD}' ..."   echo -n "     Adding user '${USER_TO_ADD}'"
95   useradd ${USER_OPTS} "${USER_TO_ADD}"   [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'"
96     echo " ..."
97     ${chroot} adduser -D $(busybox_fix_user_opts ${USER_OPTS}) "${USER_TO_ADD}"
98     for grp in $(busybox_fix_group_opts ${USER_OPTS})
99     do
100     ${chroot} addgroup "${USER_TO_ADD}" "${grp}"
101     done
102    
103    # normal systems
104  else  else
105   echo "     Modifing user '${USER_TO_ADD}' ..."   # get the info
106   usermod ${USER_OPTS} "${USER_TO_ADD}"   my_user="$(${chroot} getent passwd ${USER_TO_ADD})"
107    
108     if [ -z "${my_user}" ]
109     then
110     echo -n "     Adding user '${USER_TO_ADD}'"
111     [[ ! -z ${chroot} ]] && echo -n " into MROOT='${MROOT}'"
112     echo " ..."
113     ${chroot} useradd ${USER_OPTS} "${USER_TO_ADD}"
114     else
115     echo -n "     Modifing user '${USER_TO_ADD}'"
116     [[ ! -z ${chroot} ]] && echo -n " in MROOT='${MROOT}'"
117     echo " ..."
118     ${chroot} usermod ${USER_OPTS} "${USER_TO_ADD}"
119     fi
120  fi  fi

Legend:
Removed from v.60  
changed lines
  Added in v.1500