Skip to content
Snippets Groups Projects
Select Git revision
  • master default
  • hd_user
2 results

insert_data.sh

Blame
  • insert_data.sh 3.20 KiB
    #!/bin/bash
    DIR_USB=/media/usb_drive/
    DIR_OPENSLX=/Openslx/
    user_name=`users |  cut -f 1 -d ' '`
    
    # prepares openslx partition to be used
    # mounts partition if not mounted
    # blocks program execution if it is not a openslx partition
    # param $1 is the devpath to be mounted
    # param $2 is the uuid of the partition
    # return is done via the mountpath global variable, which is also used here
    function prepare_usb {
        # get the usb_drive's path
        local devpath="/dev/"$1
        mountpath=""
        if [ ! 0 -eq $(mount | grep -q $devpath) ]; then
            echo $0": Device $devpath is already mounted"
            mountpath=$(mount | grep -w $devpath | cut -d' ' -f3)
        else
            echo $0": Device $devpath is not mounted"
            mkdir -p /media/openslx/$2
            if $(mount $devpath /media/openslx/$2); then
                echo $0": Device $devpath mounted successfully"
                mountpath="/media/openslx/"$2
            else
                echo $0": Device $devpath could not be mounted"
                exit 1
            fi
        fi
        if [ -e "$mountpath/Openslx/config" ]; then
            echo $0": $devpath is an openslx ready drive"
        else
            echo $0": $devpath is not ready to be used as an openslx drive"
            if [ $mountpath = "/media/openslx/$2" ]; then
                echo $0": umounting $devpath"
                umount $devpath
            fi
            exit 2
        fi
    }
    
    sleep 3
    #TIRAR FOR
    # list all the usb_drives, mounted or not mounted
    usb_drives=`ls -lt 2>/dev/null /dev/disk/by-id/usb* | rev |  cut -f 3 -d ' ' | rev | head -1`
    
        prepare_usb
        echo $mount_path
        counter=0
        for user_info in `eval cat "$mount_path"/Openslx/config`; do
          type=`eval echo $user_info | cut -f 1 -d '='`
          counter=$(($counter+1))
          if [[ $type == "SLX_USB_PASSWD" ]]
             then
             passwd=`eval echo $user_info | cut -f 2 -d '='`
             user=` eval echo $user_info  | cut -f 2 -d '=' | cut -f 1 -d ':'`
             gshadow=`echo $user:!::`
             echo "user"$user
             check_user=`cat /etc/shadow | grep -w $user`
             passwd=`eval echo $user_info | cut -f 2 -d '='`
             if [[ ( ! -n $check_user) ]]; then
                echo "não existe user"
             fi
    
          elif [[ $type == "SLX_USB_SHADOW" ]]
            then
    
            shadow=`eval echo $user_info | cut -f 2 -d '='`
    
          elif [[ $type == "SLX_USB_GROUP" ]]
            then
            group=`eval echo $user_info | cut -f 2 -d '='`
    
          fi
    
          mod=$(( $counter % 3))
          if [[ $mod == 0 ]];
            then
            #insert data in the files
            if [[ (! -n $check_user)&&(-n $passwd)&&(-n $shadow)&&(-n $group)&&(-n $gshadow) ]]; then
              echo "Insert $counter"
              echo $passwd >> /etc/passwd
              echo $shadow >> /etc/shadow
              echo $group >> /etc/group
              #echo $gshadow >> /etc/gshadow
              if [ ! -d "/home/"$user ];  then
                mkdir /home/$user
                chown $user:$user /home/$user
              fi
            fi
            passwd=""
            shadow=""
            group=""
            gshadow=""
            user=""
          fi
        done
    
    
    
    echo $shadow
    echo $group
    
    #user=` eval cat "$mount_path"/Openslx/config | head -n 1 | cut -f 2 -d '=' | cut -f 1 -d ':'`
    #gshadow=`echo $user:!::`
    #check_user=`cat /etc/shadow | grep -w $user`
    #echo $shadow
    #echo $group
    #echo $check_user