Help with bash script

Discussion in 'Programming/Scripts' started by woodson2, Dec 23, 2010.

  1. woodson2

    woodson2 New Member

    My script is below and it all works well and fine, however I need to have checks put in for erroneous user input during the smbldap-passwd functions and the ldapadd functions.

    I've figured out a statement that will look at the exit status of the command and it will remove the user that was added in the previous step and exit but I can't figure out how to put these if statements into my existing script without breaking it. Yes, I'm a new shell scripter so any help will be greatly appreciated. Thanks

    /opt/IDEALX/sbin/smbldap-passwd $USERNAME
    if [ $? -ne 0 ] ; then
    echo exiting!!!!
    /opt/IDEALX/sbin/smbldap-userdel -r $USERNAME




    Exisiting script:

    #!/bin/bash -x
    TMPFILE=/db/backups/tmp-expire.ldif
    TMPFILE2=/db/backups/tmp-expire-ou.ldif
    TMPFILE3=/db/backups/variable3-ou.ldif
    TMPFILE4=/db/backups/variable4-ou.ldif

    echo Please enter the username you would like to add to LDAP!

    read USERNAME

    if getent passwd | grep -wq $USERNAME

    then
    echo $USERNAME already exists in the LDAP database!
    exit
    fi

    echo Please enter the menu group to associate with this account!
    sleep 1

    echo "(guser1,guser2,gsuer3,guser4,guser5,guser6,guser7,guser8,guser9,gadmin,gsuper)"

    read GUSER

    if [[ "$GUSER" = guser* || "$GUSER" = "gadmin" || "$GUSER" = "gsuper" ]]; then

    echo Which LDAP organizational container do you want to add the user to?
    else
    echo You entered an invalid group!!
    exit
    fi

    sleep 1

    echo "(EXAMPLE1,example2,Default)"
    sleep 1
    echo If you are unsure please enter Default for the LDAP organizational container.

    read organization

    if [[ "$organization" = "EXAMPLE1" || "$organization" = "example2" ]]; then

    echo Please assign a role to this account.

    elif [ "$organization" = "Default" ]; then
    /opt/IDEALX/sbin/smbldap-useradd -G 1513,$GUSER,26 -s /bin/ksh -d /home/operations/$USERNAME -a $USERNAME
    sleep 1

    echo Setting the inital LDAP password for $USERNAME.
    sleep 1

    /opt/IDEALX/sbin/smbldap-passwd $USERNAME
    sleep 1

    echo Enforcing password expiration upon first login!!!!!!

    cat $TMPFILE | sed "s/USER/$USERNAME/g" /db/backups/tmp-expire.ldif > /db/backups/variable3.ldif
    ldapadd -f /db/backups/variable3.ldif -x -D cn=root,dc=mdvcat,dc=lott -W

    exit
    else
    echo You entered an invalid Organizational Unit!!
    exit
    fi

    sleep 1
    echo "(admins,network,developers,vendors)"

    read role

    if [[ "$role" = "admins" || "$role" = "network" || "$role" = "developers" || "$role" = "vendors" ]]; then


    /opt/IDEALX/sbin/smbldap-useradd -G 1513,$GUSER,26 -o $role,$organization -s /bin/ksh -d /home/operations/$USERNAME -a $USERNAME

    sleep 1

    echo Setting the inital LDAP password for $USERNAME.

    sleep 1

    /opt/IDEALX/sbin/smbldap-passwd $USERNAME

    sleep 1

    echo Enforcing password expiration upon first login!!!!!!

    cat $TMPFILE2 | sed -e "s/USER/$USERNAME/g" /db/backups/tmp-expire-ou.ldif > /db/backups/variable3-ou.ldif
    cat $TMPFILE3 | sed "s/role/$role/g" /db/backups/variable3-ou.ldif > /db/backups/variable4-ou.ldif
    cat $TMPFILE4 | sed "s/organization/$organization/g" /db/backups/variable4-ou.ldif > /db/backups/variable5-ou.ldif

    ldapadd -f /db/backups/variable5-ou.ldif -x -D cn=root,dc=mdvcat,dc=lott -W


    else
    echo You entered an invalid role!!!
    exit
    fi
     

Share This Page