Magellan Linux

Diff of /trunk/mage/usr/lib/mage/museradd

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

revision 1272 by niro, Wed Jun 1 15:48:52 2005 UTC revision 1273 by niro, Wed Apr 27 09:45:07 2011 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/museradd,v 1.4 2005-06-01 15:48:43 niro Exp $  # $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  {  {
11   echo "$(basename $0 .sh) adds users to /etc/passwd."   echo "$(basename $0 .sh) adds users to /etc/passwd."
# 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  while getopts "o:-" opt ; do  while getopts "o:-" opt ; do
59   case "${opt}" in   case "${opt}" in
60   o)   o)
# Line 39  fi Line 81  fi
81    
82  USER_TO_ADD="$1"  USER_TO_ADD="$1"
83    
84  #start nscd to cache passwd  # busybox support needed?
85  $(which nscd) -i passwd  if need_busybox_support adduser
 # get the info  
 my_user="$(getent passwd ${USER_TO_ADD})"  
   
 if [ -z "${my_user}" ]  
86  then  then
87   echo "     Adding user '${USER_TO_ADD}' ..."   echo "     Adding user '${USER_TO_ADD}' ..."
88   useradd ${USER_OPTS} "${USER_TO_ADD}"   adduser -D $(busybox_fix_user_opts ${USER_OPTS}) "${USER_TO_ADD}"
89     for grp in $(busybox_fix_group_opts ${USER_OPTS})
90     do
91     addgroup "${USER_TO_ADD}" "${grp}"
92     done
93    
94    # normal systems
95  else  else
96   echo "     Modifing user '${USER_TO_ADD}' ..."   #start nscd to cache passwd
97   usermod ${USER_OPTS} "${USER_TO_ADD}"   $(which nscd) -i passwd
98     # get the info
99     my_user="$(getent passwd ${USER_TO_ADD})"
100    
101     if [ -z "${my_user}" ]
102     then
103     echo "     Adding user '${USER_TO_ADD}' ..."
104     useradd ${USER_OPTS} "${USER_TO_ADD}"
105     else
106     echo "     Modifing user '${USER_TO_ADD}' ..."
107     usermod ${USER_OPTS} "${USER_TO_ADD}"
108     fi
109  fi  fi

Legend:
Removed from v.1272  
changed lines
  Added in v.1273