home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / lib / YaST2 / bin / update_users_groups < prev    next >
Text File  |  2006-11-29  |  849b  |  32 lines

  1. #!/bin/bash
  2. #
  3. # script to add missing passwd or group entries
  4. # before update
  5. #
  6. # call as "fill_passd_group <target-dir>"
  7. # /etc/x == file from inst-sys
  8. # $1/etc/x == file from target
  9. #
  10. # Rename game -> games, wwwadmin -> www
  11. for i in $1/etc/group $1/etc/gshadow ; do
  12.   if test -e $i ; then
  13.     sed -e "s|^game:|games:|" -e "s|^wwwadmin:|www:|" $i > $i.t
  14.     cat $i.t > $i
  15.     rm -f $i.t
  16.   fi
  17. done
  18. for file in passwd group ; do
  19.   if test -f $1/etc/$file ; then
  20.     # like fillup, but : is the only separator
  21.     rm -f /tmp/$file.add
  22.     sort -k 1,1 -t: -u $1/etc/$file /etc/$file | sort -k 1,1 -t: $1/etc/$file - | uniq -u > /tmp/$file.add
  23.     cat /tmp/$file.add >> $1/etc/$file
  24.     rm -f /tmp/$file.add
  25.     # fix permissions if this script is called with strange umask
  26.     chmod 644 $1/etc/$file
  27.   else
  28.     cat /etc/$file > $1/etc/$file
  29.   fi
  30. done
  31.  
  32.