Changeset 15 for devel


Ignore:
Timestamp:
05/24/07 17:33:42 (5 years ago)
Author:
bruno
Message:

Fix bugs on useless user dir creation, lib rights useless, uid parameters now handled

File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/sshgw/bin/createrootskel

    r14 r15  
    11#!/bin/bash 
     2# 
     3# Create the chroot skeleton env (To be relaunched when changing distro ver e.g. 
     4# 
     5# $Id$ 
     6# 
    27 
    3 # Create the chroot skeleton env (To be relaunched when changing distro ver e.g. 
     8root=/etc/chrootskel 
    49 
    5 users="" 
    610if [ _"$1" = _"retrofit" ]; then 
    7     users=`ls -d /home/chroot/*` 
     11    users="`ls -d /home/chroot/*` $root" 
     12elif [ _"$1" != _"" ]; then 
     13    for i in $*; do 
     14        users="$users `ls -d /home/chroot/$1`" 
     15        shift 
     16    done 
     17else 
     18    users="$root" 
    819fi 
    920 
    10 root=/etc/chrootskel 
    1121 
    1222# Purge the old content and recreate it 
     
    1727 
    1828# Adds binaries 
    19 sbins="/bin/bash /bin/cp /bin/ls /bin/mkdir /bin/mv /bin/rm /bin/rmdir /bin/grep /usr/local/bin/removehost" 
     29sbins="/bin/bash /bin/cp /bin/ls /bin/mkdir /bin/mv /bin/rm /bin/rmdir /bin/grep" 
     30ubins="/usr/bin/rdesktop /usr/bin/scp /usr/bin/sftp /usr/bin/ssh" 
     31xbins="/usr/X11R6/bin/xauth" 
     32lbins="/usr/lib/ssh/sftp-server" 
     33obins="/usr/local/bin/removehost" 
    2034 
    21 for d in $users $root; do 
     35for d in $users; do 
    2236    echo "Updating chroot env for $d" 
    2337    mkdir -p $d/bin 
    24     cp -a $sbins $d/bin 
     38    cp -a $sbins $obins $d/bin 
    2539    (cd $d/bin ; ln -sf bash sh) 
    2640 
     
    7084 
    7185    # Users 
     86    uid=`basename $d` 
    7287 
    73     mkdir -p $d/home/user 
    74     touch $d/home/user/.bash_history 
    75  
    76     cat > $d/home/user/.bash_profile << EOF 
    77 # .bash_profile 
    78 # User specific environment and startup programs 
    79  
    80 unset USERNAME 
    81 EOF 
    82  
    83     cat > $d/home/user/.bashrc << EOF 
    84 # .bashrc 
    85 # User specific aliases and functions 
    86 EOF 
    87  
     88    mkdir -p $d/home/$uid 
     89    touch $d/home/$uid/.bash_history 
    8890 
    8991    # Temp 
     
    9496 
    9597    mkdir -p $d/lib $d/usr/lib $d/usr/bin $d/usr/lib/ssh $d/usr/share/rdesktop/keymaps $d/usr/X11R6/bin $d/usr/X11R6/lib 
    96     obins="/usr/bin/rdesktop /usr/bin/scp /usr/bin/sftp /usr/bin/ssh" 
    97     xbins="/usr/X11R6/bin/xauth" 
    98     lbins="/usr/lib/ssh/sftp-server" 
    99     cp -a $obins $d/usr/bin 
     98    cp -a $ubins $d/usr/bin 
    10099    (cd $d/usr/bin ; ln -sf ssh slogin) 
    101100    cp -a $lbins $d/usr/lib/ssh 
     
    103102    cp -a $xbins $d/usr/X11R6/bin 
    104103     
    105     bins="$sbins $obins $xbins $lbins" 
     104    bins="$sbins $ubins $xbins $lbins $obins" 
    106105 
    107106    # Librairies 
     
    114113        cp -a $i $d/$dir 
    115114    done 
    116     # Rights for libs 
    117     for i in $libs; do 
    118         chmod 644 $d/$i 
    119     done 
    120115 
    121116    # X11R6/lib is not in the default search path for libs => moved to usr/lib 
     
    127122    find $d -type d | xargs chmod 755 
    128123    for i in $bins; do 
    129         chmod 755 $d/$i 
     124        # obins are put under /bin 
     125        j=`echo $i | sed 's~/usr/local/bin~/bin~'` 
     126        chmod 755 $d/$j 
    130127    done 
    131128    chown -R chroot:chroot $d 
     129    chown -R ${uid}:chroot $d/home/$uid 
    132130    chmod 4777 $d/tmp 
    133131done 
Note: See TracChangeset for help on using the changeset viewer.